Newsgroup: it.comp.lang.visual-basic
Titolo: Esistono convertitori da C a VB ?

Qualcuno è a conoscenza di programmi per convertire sorgenti C in
programmi VB ?
Free o share o commerciali che siano.
Grazie in anticipo a chi potrà aiutarmi.
maurizio

 wrote in message
3B24D8AC...@iol.it...


 writes:
PS> Mi sembra di si, avevo visto qualcosa del genere su IoProgrammo, prova a
PS> vedere su cNet.com, ciao!!
Vorrei vederlo convertire questa :
        register n = (count + 7) / 8;      /* count > 0 assumed */
 
        switch (count % 8)
        {
        case 0:        do {  *to = *from++;
        case 7:              *to = *from++;
        case 6:              *to = *from++;
        case 5:              *to = *from++;
        case 4:              *to = *from++;
        case 3:              *to = *from++;
        case 2:              *to = *from++;
        case 1:              *to = *from++;
                           } while (--n > 0);
        }
/* :) */
--
Gian Uberto| main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Lauri      |                        David Korn, 1987 ioccc best one liner 
(aka saint)|-------------------------------------------------------------------
em@ail: 
sa...@eng.it
 ( vedere X-nospam nello header - see X-nospam in header )

Vorrei vederlo convertire questa :
Dispettoso come ai vecchi tempi ;)
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-VI --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD
   On contrary of popular belief, Unix *IS* user friendly:
    it just appears to be selective who it is friend with

        }
Ma chi è il mentecatto che programma in questo modo? :PPP
Ciao

/* :) */
hal, da aspirante BOFH risponde:
void rotfl() { rotfl() }
for (;;) rotfl() ;

> }
Z> Ma chi è il mentecatto che programma in questo modo? :PPP
Il mentecatto come lo chiami  tu è Tom Duff, all'epoca alla Lucasfilm,
luogo famoso per spremere ogni ciclo macchina dai calcolatori, ed è un
costrutto  noto   come  Duff's  Device.   Diciamo   che  dandogli  del
mentecatto non ci hai fatto una bella figura.
Il Duff's Device stato  usato da Sturmtruppen, pardon, Stroustrup come
esercizio  di comprensione  del codice  -  tra parentesi  ti pongo  la
stessa domanda: perché scrivere quel codice ?  Suggerimento: non tutto
il mondo  usa Intel, Stroustrup ha elaborato  il C++ su un  VAX se non
ricordo male  - e come tale era  usato come test di  assunzione in una
ditta californiana.
Ammetto che  proporlo al convertitore  C->VB è una bastardata  da BOFH
certificato, ma d'altro  canto sono intimamente convinto che  il C sia
più potente (come cose permesse) del VB - che uso perché devo, non per
scelta, a essere VBOFH si finisce male :)-



OK... Ma cosa diavolo fa questa cosa???
Ho cercato di capirlo ma al sesto o settimo minuto mi sono accorto di avere
anche un lavoro, nonche' la necesita' di conservarlo :P
L'incremento dei puntatori e' f(count) in un modo che tuttora mi sfugge, ma
scommetto che il grafico della funzione ha un andamento molto
interessante...
Pero' non capisco il motivo di fare *to=*from++; anziche' fare solo *from++;
ed assegnare *to a fine ciclo... Non trovo nessun caso in cui *to possa non
essere assegnato...
Ciaotutti,
Asterix

>>>>> "*" == *Alessandro*  <Alessandro> writes:
/* duff device omitted */
*> Pero' non capisco il motivo di fare *to=*from++; anziche' fare solo *from++;
*> ed assegnare *to a fine ciclo... Non trovo nessun caso in cui *to possa non
*> essere assegnato...
Se lo chiese anche Sturmtruppen ed infatti nel suo libro l'istruzione è
*to++ = *from++ ma l'uso è diverso.
Nel codice originale  di Tom Duff *to è l'indirizzo  di un registro di
I/O memory mapped.


> 
RZ> Io invece vorrei vedere in faccia (se esiste) uno che programma cosi'
Uno che programma cosě č un tizio decisamente geniale (vedi altri miei
post  nel thread).  Prova a  riguardarti bene  cosa fa  quel  codice e
sopratutto come...


scelta, a essere VBOFH si finisce male :)-
Ovvio, il VB è molto (per ora) più limitato del C, ma in una gara a chi può
scrivere il codice peggiore (in termini di leggibilità intendo), il C
vincerebbe alla grande.
Per quanto riguarda prestazioni e capacità siamo tutti daccordo a dare un 6
e mezzo a VB.
Ciao

 sopratutto come...
potresti spiegare anche ai profani cosa fa, e, soprattutto, come ?
cosi' a colpo d'occhio ho qualche piccolo dubbio... :))
en passant: e poi tacciano me, di o.t. ...
qui siamo passati dal c al vax ...
ancora un po' e arriviamo a leibniz e pascal...
:))

:))
ah, a delphi :)

 ha scritto nel messaggio
news:9g5tqc$76ov7$1...@ID-51318.news.dfncis.de...

Il codice presentato, per quel che si riesce a capire, copia un blocco di
memoria lungo COUNT  (non so se byte/word/long) ad una determinata locazione
puntata da TO (ad esempio una porta seriale), limitando per quanto possibile
l'istruzione while.
Vengono trasferiti 8 dati per ogni ciclo while tranne la prima volta in cui
vengono trasferiti un numero di dati definiti dal resto della divisione
COUNT / 8.
Ciao
Giuseppe

 writes:
Z> Chi scrive del codice incomprensibile dovrebbe essere perseguito
Z> legalmente.  :)
Non è incomprensibile. E' solo decisamente strano. E quindi a suo modo
bello.   Il  resto del  post  pare indicare  che  non  sei riuscito  a
leggerlo.
Z> Ma forse non ne capisco molto di masturbazioni mentali dei così detti
Z> dottoroni laterali.
No.  Era  solo uno  che aveva  bisogno che il  programma fosse  il più
efficente  possibile.   Non  so  se  hai  presente   cosa  fanno  alla
Lucasfilm...
Nel caso  particolare riduceva as 1/8  il numero di  confronti e salti
(con  vari benefici  tra  minori istruzioni  eseguite  a minori  salti
eseguiti) con  uno srotolamento di  loop(*) che non spreca  più spazio
del necessario.
(*) è una tecnica di ottimizzazione adottata da molti compilatori C.
Z> Ovvio, il VB è molto (per ora) più limitato del C
Ha poche  speranze di superarlo,  a parer mio.  Ci sono cose  che sono
proprio estranee al VB e  inserirle non vorrebbe dire altro che rifare
il C con una sintassi diversa.  Più o meno come aveva fatto la Borland
col TurboPascal. Molti altri linguaggui hanno un bel vantaggio sul VB.
Z> ma in una gara a chi può scrivere il codice peggiore (in termini di
Z> leggibilità intendo), il C vincerebbe alla grande.
Il  C permette  di  scrivere codice  peggiore  non so.   Certo si  può
scrivere codice veramente duro da leggere  e c'è pure una gara che non
credo apprezzresti,  anche se i risultati  sono spesso divertentissimi
da guardarsi, ma trovo assai  più ostico agli occhi codice scritto con
la notazione ungherese...
Uso il VB  da qualche anno (non  certo per scelta mia) ma  non mi pare
tanto  di più  di uno  scripting language,  penso che  potrebbe essere
rimpiazzato facilmente con Python...


> 
G> Il codice presentato, per quel che si riesce a capire, copia un blocco di
G> memoria lungo COUNT  (non so se byte/word/long) ad una determinata locazione
G> puntata da TO (ad esempio una porta seriale), limitando per quanto possibile
G> l'istruzione while.
Hai capito esattamente.
TO era una porta di output di un dispositivo usato dalla Lucasfilm, stando
alle fonti.
Limitare l'istruzione while ha questi vantaggi:
	fai  in totale  meno istruzioni  di decremento  comparazione e
	salto 
	lavori per quanto possibile con in variabili di registro (e se
	sei  costretto a  tenere l'indice  in memoria  ci  accedi meno
	spesso, cosa buona)
	riduci  le volte  in  cui  dai una  botta  nello stomaco  alla
	pipeline  (la jump  prediction  è molto  più  recente di  quel
	codice)



piu' ostico di QUESTO?
(usate caratteri non proporzionali per leggerlo, per quanto sembri
incredibile vi assicuro che non solo compila ma  fa anche decisamente bene
il suo lavoro)
#define _ -F<00||--F-OO--;
int F=00,OO=00;
main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
            _-_-_-_
       _-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
        _-_-_-_-_-_-_-_
            _-_-_-_
}
(Vincitore OCCC 1988... Non a caso direi!)
Ed ecco l'intestazione, leggetelasolo dopo aver cercato di capire cosa
faccia il programma cosi' non vi perdete la sorpresa :PP
.
.
.
.
.
.
.
.
/*
 * Program to compute an approximation of pi
 * by Brian Westley, 1988
 * (requires pcc macro concatenation; try gcc -traditional-cpp)
 */
Ciaotutti,
Asterix


> 
*> piu' ostico di QUESTO?
*> #define _ -F<00||--F-OO--;
*> int F=00,OO=00;
*> main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
*> {
*>             _-_-_-_
*>        _-_-_-_-_-_-_-_-_
*>     _-_-_-_-_-_-_-_-_-_-_-_
*>   _-_-_-_-_-_-_-_-_-_-_-_-_-_
*>  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
*>  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
*> _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
*> _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
*> _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
*> _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
*>  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
*>  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
*>   _-_-_-_-_-_-_-_-_-_-_-_-_-_
*>     _-_-_-_-_-_-_-_-_-_-_-_
*>         _-_-_-_-_-_-_-_
*>             _-_-_-_
*> }
*> (Vincitore OCCC 1988... Non a caso direi!)
Questo č chiarissimo cosa fa.  Ora la controdomanda.  Come migliori il
risultato ?


 risultato ?
Aumentando l'area del cerchio :P
Ciaotutti,
FAQsterix

> risultato ?
*> Aumentando l'area del cerchio :P
Esatto!
Io quello  me lo stampo su una  T-Shirt (è il mio  preferito, ma nella
signature non ci sta :) )


da guardarsi, ma trovo assai  più ostico agli occhi codice scritto con
C'e' mica un sito coi risultati, i candidati o anche solo i vincitori
di un po' di queste gare? Ne vidi un paio all'uni come esempio di
codice "estroso" e mi divertii molto.
Mi piacerebbe vedere altri esempi.
C'era il trenino e l'interprete lisp in 8 righe formattate a
mattone...


 writes:
GR> C'e' mica un sito coi risultati, i candidati o anche solo i vincitori
GR> di un po' di queste gare?
http://www.ioccc.org/
Get fun :)



Confesso che da solo non ci sarei arrivato...
Ho conosciuto l'IOCCC tramite il jargon file, il quale spiegava anche come
funzionasse questo programma.
Devo dire che l'autore e' un genio.
Ciaotutti,
Asterix

> signature non ci sta :) )
*> Confesso che da solo non ci sarei arrivato...
Io l'avevo intuito ma non ero arrivato alla "dimostrazione formale"
*> Ho conosciuto l'IOCCC tramite il jargon file, il quale spiegava anche come
*> funzionasse questo programma.
Ottima lettura l'Hacker Jargon File!
*> Devo dire che l'autore e' un genio.
Concordo!
