Qual è il metodo più efficiente per convertire il codice legacy di AutoLISP in C #?

1

Sono impegnato in un progetto che funziona principalmente in AutoCAD per progettare e produrre componenti prefabbricati come capriate. Uno dei nostri obiettivi è ridisegnare un programma che è stato scritto in LISP che funzioni nella progettazione di capriate da tetto. Dobbiamo riscrivere il codice LISP in C # e implementarlo in modo incrementale nelle librerie correnti che hanno impostato.

Il mio problema è che sono stato incaricato di creare un convertitore da LISP a C # rudimentale. Dopo alcune ricerche (dato che i risultati di Google mostrano rapidamente che una cosa del genere non esiste facilmente a portata di mano), sono giunto alla domanda su quale modo di convertire questo codice legacy sarebbe più efficiente. Sarebbe meglio prendere pezzi del codice LISP per analizzare e riscrivere in C #, o dovrei continuare a sviluppare un convertitore rudimentale per il codice AutoLISP?

    
posta Archibald 16.05.2014 - 19:00
fonte

1 risposta

4

Speriamo che il dominio del problema che hai appena descritto sia relativamente piccolo. Cioè, il codice che stai convertendo è vincolato a una piccola manciata di funzioni AutoLISP specifiche e non devi rappresentare la totalità della semantica AutoLISP in C #.

Se è così, la prima cosa che farei è trovare un codice AutoLISP che sia abbastanza rappresentativo del codice che vuoi convertire, e convertirlo a mano. Idealmente, troverai un pattern che ti permette di eseguire una semplice traslitterazione; cioè codice in AutoLISP che mappa direttamente ad alcune funzioni che scrivi in C #.

È una buona idea eseguire la conversione manuale almeno una volta. Vi fornirà una migliore comprensione di come funziona il processo di traduzione. Quello che stai tentando non è affatto la stessa cosa, per esempio, un convertitore da VB.NET a C #, poiché quel tipo di convertitore sta mappando semantica molto simile a ciò che equivale a variazioni di sintassi.

In altre parole, la conversione tra due lingue così diverse è normalmente eseguita a mano. Quando è fatto in modo automatico, di solito è fatto scrivendo alcune funzioni nella lingua di destinazione che imitano le funzioni nella lingua di origine, e quindi unendo quelle funzioni insieme.

    
risposta data 16.05.2014 - 19:05
fonte

Leggi altre domande sui tag