Convierta Delphi a Crystal usando IA

La traducción de código fuente a fuente de Delphi mediante IA implica el uso de técnicas de procesamiento del lenguaje natural (NLP) y algoritmos de aprendizaje automático para analizar y comprender el código fuente.

Corto

FAQ

Desafíos de Traducción

Problema de Traducción Ejemplo de Sintaxis Delphi Ejemplo de Sintaxis Crystal Puntuación
Declaración de Tipo var x: Integer; x = 0 (tipado implícito) 6
Manejo de Excepciones try ... except ... end; begin ... rescue ... end 7
Sobrecarga de Métodos function Add(a, b: Integer): Integer; def add(a : Int32, b : Int32) : Int32 5
Propiedades property Name: string read GetName; @[property] def name : String 8
Implementación de Interfaces type IMyInterface = interface ... end; module MyInterface ... end 4
Genéricos TList<T> = class ... end; class List(T) ... end 6
Manejo de Memoria New(Pointer); Pointer.new 5
Métodos Anónimos procedure(var x: Integer); ->(x : Int32) { ... } 7
Sobrecarga de Operadores operator + (a, b: TMyClass): TMyClass; def +(other : MyClass) : MyClass 6
Sistema de Unidades uses MyUnit; require "my_unit" 5

Declaración de Tipo

En Delphi, las declaraciones de tipo son explícitas, mientras que Crystal permite el tipado implícito.

Ejemplo de Delphi:

var
  x: Integer;

Ejemplo de Crystal:

x = 0  # Tipado implícito como Int32

Referencia: Documentación de Delphi - Variables


Manejo de Excepciones

Delphi utiliza un bloque try...except para el manejo de excepciones, mientras que Crystal utiliza begin...rescue.

Ejemplo de Delphi:

try
  // Código que puede generar una excepción
except
  on E: Exception do
    // Manejar la excepción
end;

Ejemplo de Crystal:

begin
  # Código que puede generar una excepción
rescue e : Exception
  # Manejar la excepción
end

Referencia: Documentación de Delphi - Manejo de Excepciones


Sobrecarga de Métodos

Delphi admite la sobrecarga de métodos con declaraciones de tipo explícitas, mientras que Crystal utiliza anotaciones de tipo.

Ejemplo de Delphi:

function Add(a, b: Integer): Integer;
begin
  Result := a + b;
end;

Ejemplo de Crystal:

def add(a : Int32, b : Int32) : Int32
  a + b
end

Referencia: Documentación de Delphi - Sobrecarga


Propiedades

Las propiedades en Delphi se definen con métodos getter y setter, mientras que Crystal utiliza anotaciones.

Ejemplo de Delphi:

property Name: string read GetName;

Ejemplo de Crystal:

@[property]
def name : String
  @name
end

Referencia: Documentación de Delphi - Propiedades


Implementación de Interfaces

Las interfaces en Delphi se definen con la palabra clave interface, mientras que Crystal utiliza módulos.

Ejemplo de Delphi:

type
  IMyInterface = interface
    procedure MyMethod;
  end;

Ejemplo de Crystal:

module MyInterface
  def my_method
  end
end

Referencia: Documentación de Delphi - Interfaces


Genéricos

Los genéricos en Delphi se definen con T, mientras que Crystal utiliza parámetros de tipo.

Ejemplo de Delphi:

type
  TList<T> = class
  end;

Ejemplo de Crystal:

class List(T)
end

Referencia: Documentación de Delphi - Genéricos


Manejo de Memoria

Delphi utiliza New para la asignación de memoria, mientras que Crystal utiliza Pointer.new.

Ejemplo de Delphi:

New(Pointer);

Ejemplo de Crystal:

Pointer.new

Referencia: Documentación de Delphi - Manejo de Memoria


Métodos Anónimos

Delphi admite métodos anónimos con procedure, mientras que Crystal utiliza la sintaxis de flecha.

Ejemplo de Delphi:

procedure(var x: Integer);

Ejemplo de Crystal:

->(x : Int32) { ... }

Referencia: Documentación de Delphi - Métodos Anónimos


Sobrecarga de Operadores

Delphi permite la sobrecarga de operadores con la palabra clave operator, mientras que Crystal utiliza definiciones de métodos.

Ejemplo de Delphi:

operator + (a, b: TMyClass): TMyClass;

Ejemplo de Crystal:

def +(other : MyClass) : MyClass
end

Referencia: Documentación de Delphi - Sobrecarga de Operadores


Sistema de Unidades

Delphi utiliza uses para incluir unidades, mientras que Crystal utiliza require.

Ejemplo de Delphi:

uses MyUnit;

Ejemplo de Crystal:

require "my_unit"

Referencia: Documentación de Delphi - Unidades