Quando è un programma poliglotta qualcosa che vale la pena usare / distribuire? [chiuso]

0

Programmi Polyglot mi sembra abbastanza confuso e soggetto a errori. Subito non ne vedo l'utilità oltre a "mostrare". Non sarebbe un cattivo schema di programmazione, dal momento che non è modulare?

C'è qualcosa che può essere implementato con esso che è più pulito della progettazione di applicazioni software come suite di moduli / librerie / servizi implementabili in modo indipendente?

    
posta Pierre B 28.11.2016 - 02:48
fonte

2 risposte

4

Ci sono un paio di rari casi limite in cui la programmazione con poliglotta è utile. Con la programmazione poliglotta, il codice sorgente può essere compreso in più lingue. Di solito, questo è fatto per una sorta di retrocompatibilità.

Ad esempio, possiamo creare uno script Perl che può anche essere invocato come script di shell, che ha alcuni usi se il sistema non supporta correttamente la linea shebang:

#!/bin/sh
#! -*-perl-*-
eval 'exec perl -x -wS $0 ${1+"$@"}'
    if 0;

(da perldoc perlrun )

È anche abbastanza comune per le librerie C ++ esprimere l'interfaccia visibile esternamente in modo compatibile con C. Ciò consente di utilizzare la libreria più facilmente. Mentre C e C ++ hanno una sintassi simile (e C ++ era basato su C), differiscono in un paio di punti sottili che possono rendere difficile l'uso del codice C ++ da C.

All'interno di C e C ++, c'è anche un sacco di uso intelligente del preprocessore per usare portabilmente caratteristiche specifiche del compilatore. Se sosteniamo che GC's C è una lingua diversa da Visual Studio C, un programma che compila sotto entrambi può essere considerato come poliglotta.

Oltre a questo, la programmazione poliglotta in produzione è inutile. Sai quale compilatore o interprete utilizzerai, quindi devi solo targetizzarlo.

    
risposta data 28.11.2016 - 13:06
fonte
-1

La programmazione di poliglotta è un'abilità molto utile, anche essenziale nell'ambiente informatico di oggi. È praticamente impossibile sviluppare qualsiasi sistema software non giocattolo in una sola lingua.

Ad esempio, in una tipica applicazione Web, potresti utilizzare HTML, CSS, ECMAScript, TypeScript, Liquid, SQL, Java, sh e Ant.

La Programmazione Polyglot riguarda la suddivisione ricorsiva di un grosso problema in problemi secondari atomici e la scelta della lingua migliore per risolvere ogni sottoproblema. Il prossimo passo sulla scala sarebbe quindi la programmazione orientata alla lingua, che consiste nel suddividere ricorsivamente un grosso problema in sotto-problemi atomici, e progettare (e implementare) la lingua ideale per risolvere ogni sottoproblema.

    
risposta data 28.11.2016 - 12:47
fonte

Leggi altre domande sui tag