2011-02-26 10 views
25

Un mio professore ha detto che accetterà i compiti a casa in qualsiasi lingua avremmo bisogno di usare. Ho un buon rapporto con me che mi piacerebbe scherzare un po 'con lui e presentare un compito a casa valido usando il brainfuck, lo spazio bianco o un linguaggio altrettanto "utile".Compilatore C a Brainfuck (per aver molestato un professore)?

Ho le origini C per alcune semplici routine di analisi numerica, nonché l'output compilato e i file di assieme che generano.

Qualcuno sa di un decompilatore (o di un traduttore C-> brainfuck) che potrebbe darmi qualcosa di simile al "codice sorgente Brainfuck"?

+4

Concordo pienamente con Belisario, e non penso che il conteggio del codice generato dalla macchina diventi un compito da svolgere in qualsiasi lingua che si desidera utilizzare. Ti darei un brutto voto se fossi il tuo istruttore. :-) –

+0

@Sevenless è lo stesso. Basta includere una versione compressa del file sorgente nella versione compilata e si dispone di un linguaggio de-compilabile al volo. –

+3

Basta imparare [APL] (http://en.wikipedia.org/wiki/APL_%28programming_language%29) o J :-) Dopotutto, queste * sono * lingue "utili". –

risposta

18

Basta usare APL o J.

A differenza di BF, in realtà erano progettati per servire uno scopo "utile" (e non un "utile come in BF") - e tuttavia possono facilmente rendere le voci di golf in codice Perl simili a romanzi. (La dedizione e l'allenamento mentale per godere di queste lingue è attualmente più che i miei livelli di abilità/sforzo.)

Se l'obiettivo è usare un linguaggio puramente esoterico, mi è sempre piaciuto l'aspetto dei programmi Piet. Sembra più bello ed è attualmente in grado di solve common CS homework problems. Seguendo i collegamenti rivelerà "Piet assemblers" e altri strumenti. Vincere.

Felice codifica.

+4

Guarda questo http://www.matthias-ernst.eu/piet/ ... un interprete BF in Piet! –

+1

@belisarius Bellissima arte - Non riesco a capire la mente di altre persone :) –

+1

J è incredibile. http://beust.com/weblog/2008/08/28/coding-challenge-wrap-up/ – JCasso

2

Una ricerca rapida di Google visualizza il (a?) Brainfuck site, che collega a un archive con "tutte le cose Brainfuck". Dubito che ci sia un traduttore C-> brainfuck ovunque, non penserei che qualcuno possa investire così tanto tempo.

7

Per quello che vale, ho appena scritto un semplice Brainfuck Assembler (ispirato da questo post SO in realtà), che raccoglie codice sorgente leggibile (non C, solo qualcosa di semplice e senza nome) per BrainFuck. Il codice sorgente e le istruzioni di compilazione/utilizzo sono disponibili qui: BrainFuck Assembler.

Modifica: il progetto è stato aggiornato di recente con un nuovo nome: BrainFix.

+0

volevo dare un'occhiata, ma ... data l'attuale disponibilità di sourceforge suggerirei di duplicare il lavoro da qualche parte anche altro –