Scheme2Js

Software screenshot:
Scheme2Js
Software detaljer:
Version: 20101114
Upload dato: 11 May 15
Udvikler: Florian Loitsch
Licens: Gratis
Popularitet: 6

Rating: nan/5 (Total Votes: 0)

Scheme2Js er en ordning til Javascript compiler. Mens en vis indsats er blevet brugt på at være så tæt som muligt på R5rs, vi hovedsageligt koncentreret på effektivitet.
Normalt Scheme2Js producerer Javascript-kode, der er sammenlignelig med håndskrevne kode. For at opnå denne forestilling, Scheme2Js ikke er helt R5rs kompatibel. Især mangler det støtte til videreførelser, nøjagtige tal, og det behandler hale rekursion kun delvist.
Scheme2Js giver flere flag, der tillader at ændre resultatet:
ย ท --no-js-dot-notationen forbyder adgang til JavaScript felter med dot-notation. Dette flag deaktiverer adgange af formen xy ligesom i document.getElementById. Det er dog stadig muligt at få adgang til, er et gyldigt udtryk ved hjælp af funktionen js-felt.
ย ท --mutable-strenge: for at forbedre ydeevnen af ​​snor-operationer, og at lette grænsefladen mellem ordningen og JavaScript-kode, standard implementering kortene Scheme strings til JavaScript strenge. I modsætning til Scheme strings, JavaScript strenge er dog uforanderlige. Dette flag Kort strenge til en JavaScript klasse, der repræsenterer Scheme strygere, der er foranderlig. Den resulterende kode kan være lidt langsommere, og det er vanskeligere at interface med Javascript kode.
ย ท --encapsulate-dele indkapsler programmet i en anonym funktion. Kun globale variabler er uden for denne anonyme funktion. På den ene side er dette introducerer én funktion opkald til den anonyme funktion. Men på den anden side de fleste Javascript implementeringer skal køre hurtigere med denne optimering: normalt hashtables bruges til at repræsentere anvendelsesområder i JavaScript. Ved at bruge en anonym funktion programmerne variable er adskilt i deres egen mindre hashtabellen der (i teorien) accelererer adgang til disse variabler. Vigtigere variablerne gemmes i deres egen hashtabellen, og ikke i den globale hashtabellen, som er tilgængelig via den globale variabel. Det er ekstremt let at indirekte ændre indholdet af globale variable. Inlining eller andre fælles optimeringer er derfor umuligt at gøre på globale variabler. Ved at lagre programmets variable i en anonym funktion disse optimeringer bliver igen muligt.
ย ท --optimize-var-nummer reducerer antallet af variabler, der anvendes i den resulterende JavaScript-kode. Koden kan køre hurtigere, men er sværere at debug, som de variable navne er tabt, og den samme variabel kan anvendes flere gange.
ย ท --optimize-mens: med dette flag Scheme2Js optimerer fælles mens sløjfer. Den ikke-optimerede mens løkker er ofte af formen:
 while (true) {
   hvis (test)
     resVar = res;
   else {
     modify_loop_variable;
     fortsætte;
   }
   break;
 }
 
Denne optimering søger efter disse mønstre og flytter testen i while-løkke:
 mens (! test) {
   modify_loop_variable;
 }
 resVar = res;
 
Denne optimering er blevet gennemført for nylig, og er derfor endnu ikke aktiveret som standard.
ย ท --verbose udskriver nogle oplysninger.
ย ท --no-inlining deaktiverer alle funktioner inlining (konstanter kan stadig blive indbygges).
ย ท --inline-globals lader Scheme2Js inline globale funktioner og konstanter. Dette kan have to uønskede bivirkninger: for en, der er globale variabler ofte til at overføre data mellem forskellige moduler. Nogle inlie funktioner er tabt, hvis der ikke er nogen henvisning til dem længere. Hvis globale funktioner skal anvendes uden for et modul, bør man ikke bruge dette flag. (Denne opførsel vil sandsynligvis ændre sig i fremtidige versioner af Scheme2Js.)
ย ท --unresolved-is-js: Hvis en variabel er ubundet, vil compileren antage variablen kommer fra et andet modul, eller fra JavaScript. Se afsnit Scheme - Javascript for en mere detaljeret diskussion af JavaScript Scheme interface.
ย ท --js-dette giver denne variabel inden Scheme funktioner. På denne måde kan Scheme procedurer bruges som metoder til JavaScript-objekter.
ย ท --no-tailrec deaktiverer tailrec til, mens-loop optimering. Hvis du har mistanke om en fejl i compiler måde at oversætte hale-ministrene, kan du prøve dette flag.
ย ท --no-optimere-opkald deaktiverer Scheme2Js inlining af binære eller unære operationer. For eksempel sci_plus (3, 5) er optimeret til (3 + 5). Denne optimering er ret vigtigt, og der er normalt ingen grund til at deaktivere den.
ย ท --no-optimere-consts deaktiverer pre-konstante beregning. Medmindre deaktiveret (med dette flag), er sammensatte konstanter forudberegnede og deres forekomster erstattes af en henvisning til en variabel holder konstant. Dette gør gentaget adgang til disse konstanter hurtigere, men introducerer nye variabler.
ย ท --no-optimere-boolify deaktiverer boolify optimering. JavaScript-og Scheme s boolify ikke svarer: JavaScript anser falsk, 0, null og udefinerede at være falsk, mens ordningen har kun #F. Den ikke-optimerede boolify derfor tilføjer altid testen mod falsk: if (test == falsk!) ... Hvis Scheme2Js kan se, at testen i sig selv er en boolesk, kan det fjerne den unødvendige == falsk test!. Dette flag deaktiverer denne optimering.
ย ท -D ETAPE udskriver en dot-fil (se graphviz) i AST efter scenen STAGE. Mulige faser er: udvide, træ, symbol, node-elim1, hale, inline, konstant-formering, RM-ubrugt-Vars, opsamling, node-elim2, mens, (tt "statements"), node-elim3. Normalt en behøver ikke dette flag, medmindre det debugging formål.
ย ท --print-locs udskriver de oprindelige steder som kommentarer til JavaScript-fil. Disse placeringer er i øjeblikket tegn-offset fra begyndelsen af ​​filen

Hvad er nyt i denne udgivelse:.

  • Minor ændringer og fejlrettelser er blevet porteret fra Hop til Scheme2Js.

Hvad er nyt i version 20100816:.

  • Scheme2Js 'runtime-reader genkender nu søgeord
  • Flere fejl er blevet rettet.

Hvad er nyt i version 20081219:.

  • compiler er optimeret
  • Det er nu meget hurtigere og bruger mindre hukommelse.
  • Mange fejl er blevet rettet.
  • Standard modul klausul Scheme2Js nu ligner det en af ​​Bigloo.
  • Denne version understøtter kvalificerede navne.

Lignende software

Pike
Pike

20 Feb 15

Craft
Craft

20 Feb 15

Kommentarer til Scheme2Js

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!