Bloatware yarışması: 100'ün üzerinde MiB çalıştırılabilir çalıştırılabilir [kapalı]


22

Favori (derlenmiş) dilinde büyük (104857600 byte'tan az olmayan) çalıştırılabilir bir dosyada derlenen kısa kaynak kodunu oluşturun. Program çalıştırılabilir olmalıdır (1GB boş hafıza varsayarak) ve her şeyi yapabilir (merhaba dünyası gibi basit bir şey tercih edilebilir).

Açık olmayan numaraların kullanımı teşvik edilir.

C'deki sıkıcı örnek:

int a[1024*1024*25] = { 1 };

int main(){}

Çalıştırılabilir boyutun neden küçültülemeyeceği "açıklanabiliyorsa" bonus puanları (yani bütün şişlikler aslında bir şekilde kullanılır).


7
TÜM kütüphaneleri statik olarak bağlayın !
marinus

Bu yüzden başlangıçta 10+ MiB'yi düşündüm, fakat 100 + 'ya revize edildi ... Veya sistemdeki bütün kütüphaneler anlamına mı geliyor?
Vi.

Bir HTML dosyası çalıştırılabilir olarak kabul edilebilir mi?
xem

Olasılıksız.󠀠󠀠󠀠
Vi.

Kazanan kriter "en büyük çıktı dosyası" veya başka bir şeyle değiştirildiyse bu durum konuyla ilgili olabilir, ancak mevcut cevapları geçersiz kılar ve bunu en az bir başka mücadelenin kopyası yapar. Popülerlik yarışması etiketi
kedi

Yanıtlar:


13

Tamam, işte C’de bir tane daha var;

#define a(x) x,x|1,x|2,x|3,x|4,x|5,x|6,x|7
#define b(x) a(x),a(x|8),a(x|16),a(x|24)
#define c(x) b(x),b(x|32),b(x|64),b(x|96)
#define d(x) c(x),c(x|128),c(x|256),c(x|384)
#define e(x) d(x),d(x|512),d(x|4<<8),d(x|6<<8)
#define f(x) e(x),e(x|2048),e(x|4096),e(x|6144)
#define g(x) f(x),f(x|8192),f(x|4<<12),f(x|6<<12)
#define h(x) g(x),g(x|2<<14),g(x|4<<14),g(x|6<<14)
#define i(x) h(x),h(x|2<<16),h(x|4<<16),h(x|6<<16)
#define j(x) i(x),i(x|2<<18),i(x|4<<18),i(x|6<<18)
#define k(x) j(x),j(x|2<<20),j(x|4<<20),j(x|6<<20)
int u,v,z[]={k(0),k(2<<22),k(4<<22),k(6<<22)}
int main(){for(u=v=0;u<1<<25;u++)v|=u!=z[u];return v;}

Temel olarak, derleme zamanında 0 - 2 25 - 1 arasında artan bir tamsayı dizisi oluşturur . Çalışma zamanında, dizinin gerçekten beklenen değerleri içerdiğini doğrular ve değilse sıfır olmayan bir hata kodu döndürür.

Ps. Eğer matematik hakkımı doğru yaparsam, çalıştırılabilir dosya 100 MiB'nin üzerinde olmalıdır. Derleme bittiğinde tam boyutunu size bildiririm ...


1
Ps. Gerçek boyutunu doğrulamak denemelerim (umarım geçici olarak) Ben oldukça sıradışı GCC hata mesajı olarak ne şüpheli yüzünden gölge olmuştur: virtual memory exhausted: Cannot allocate memory. o_O Bir şekilde derlememe izin verip vermediğimi görmek için seçenekleri ince ayarlamaya çalışacağım.
Ilmari Karonen


Ayrıca clang(ICE) ve ile yapılamaz tcc.
Vi.

1
-O0Derleyicideki talepleri en aza indirmek için tüm optimizasyonu ( ) kapatın ve boruların ( -pipe) etkinleştirilmesi yardımcı olabilir veya olmayabilir.
dmckee

3
Bu derleme problemi, programın doğru olduğunu doğrulamak için kendi ön işlemcisini yazan IOCCC'nin
Christian Semrau

6

C #

Kaynak kodunun> 30k :) olduğundan, bu kadar kısa olup olmadığından emin değilim.

Yani - alıntı yapmak için çok büyük. İşte biraz kısaltılmış versiyonu

using System.Collections.Generic;
class Program
{
    static void Main()
    {
        var a = new List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<List<int>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>();
    }
}

Aslında derlediğim kod burada bulunabilir: http://pastebin.com/R5T3e3J0

Bu, optimizasyonlar olmadan derlendiğinde ~ 45KiB değerinde bir .EXE dosyası oluşturur. Ngen.exe (Native Image Generator) ile tekrar derleyin ve bir kuyruklu 104MiB olur!

Bu, CLR genel tip sisteminin nasıl çalıştığından dolayı çalışır. Yukarıdaki koddaki <> her bir Liste yeni bir tür beyan üretecektir (normalde JIT derlemesi ile, ancak Ngen AOT derlemesi yapar). Öyleyse bir liste <int>, diğeri liste <liste <int>> vb. Bu nedenle, bu kod için toplam 5160 farklı genel liste oluşturulacaktır.


1
İhtiyacınız olan şey, programınızı yazacak bir betik.
hildred

Programın boyutunu azaltmak oldukça önemsizdir (Listenin iç içe geçme düzeylerini kaldırarak). Program işlevini etkilemeden yinelenen kodu kolayca kaldıramamak için yapılabilir mi?
Vi.

Tabii ki iç içe geçmeyi kaldırabilirsiniz, ancak benzer şekilde, C örneğinde sadece birkaç tane #defines'i kaldırabilir ve programı daha küçük hale getirebilirsiniz. Boyutunun küçültülememesi gereğini yorumlamamın yolu, optimize edilememesiydi. Sadece kaynak kodunu değiştirmenize izin verilirse, konuyu tam olarak göremiyorum. :)
Christian Palmstierna

1
Her ne kadar a değişkeni hiç kullanılmadığı için bunun muhtemelen optimize edilebileceği belirtilmelidir.
Christian Palmstierna

4

COBOL

   ID DIVISION. 
   PROGRAM-ID. BLOAT. 
   ENVIRONMENT DIVISION. 
   DATA DIVISION. 
   WORKING-STORAGE SECTION. 
   01  THE-TEST-STRINGS. 
       05  FILLER OCCURS 11584 TIMES. 
           10  TEST-STRING          PIC X(11584). 
   LOCAL-STORAGE SECTION. 
   01  FIRST-TIME-FLAG              PIC X VALUE "Y". 
   01  DISP-BEFORE-STRING     COMP  PIC 9(8). 
   01  LOOP-COUNTER           COMP  PIC 9(8). 
   01  START-STRING. 
       05  FILLER OCCURS 0 TO 11584 TIMES 
           DEPENDING ON DISP-BEFORE-STRING. 
           10  FILLER               PIC X. 
       05  THE-SUBSTRING            PIC X(12). 
   01  INITIAL-STRING               PIC X(12) 
                                     VALUE "HELLO WORLD!".
   LINKAGE SECTION. 
   01  STRING-PARAMETER             PIC X(11584). 
   01  THE-RESULT                   PIC X. 
   PROCEDURE DIVISION USING 
                                    STRING-PARAMETER 
                                    THE-RESULT 
                                    . 

       IF FIRST-TIME-FLAG = "Y" 
           PERFORM                  SET-UP-STRINGS 
       END-IF 
       PERFORM 
         VARYING                    LOOP-COUNTER 
         FROM                       1 
           BY                       1 
         UNTIL                      LOOP-COUNTER 
           GREATER THAN 11584 
         OR STRING-PARAMETER 
             EQUAL TO               TEST-STRING 
                                        ( LOOP-COUNTER ) 
       END-PERFORM 
       IF STRING-PARAMETER 
         EQUAL TO TEST-STRING ( LOOP-COUNTER ) 
           MOVE "Y"                TO THE-RESULT 
       ELSE 
           MOVE "N"                TO THE-RESULT 
       END-IF 
       GOBACK 
       . 
   SET-UP-STRINGS. 
       PERFORM 
         VARYING                    LOOP-COUNTER 
         FROM                       0 
           BY                       1 
         UNTIL                      LOOP-COUNTER 
           EQUAL TO 11584 
           MOVE 11584               TO DISP-BEFORE-STRING 
           MOVE SPACE               TO START-STRING 
           MOVE LOOP-COUNTER        TO DISP-BEFORE-STRING 
           MOVE INITIAL-STRING      TO THE-SUBSTRING 
           MOVE START-STRING        TO TEST-STRING 
                                        ( LOOP-COUNTER + 1 )
       END-PERFORM 
       MOVE "N"                     TO FIRST-TIME-FLAG 
       . 

Küçük bir bilgi tehlikeli bir şey olabilir.

Büyük bir karşılaştırmayı yapmak, birçok küçük karşılaştırmaya göre daha hızlı olabilir; IBM'in Enterprise COBOL (Sürüm 4.2'ye kadar) maksimum 128 MB ÇALIŞMA DEPOLAMA değeri olabilir (Sürüm 5.0 2 GB olabilir); Daha fazla alana ihtiyacınız olursa LOCAL-STORAGE, 128 MB daha sunar.

Görev, 11584 baytlık bir depolama parçasının "HELLO WORLD!" Değerine sahip olduğunu doğrulamak. bir yerlerde ve gerisi uzundur.

Hayali, programcı bunun için bir alt program yazmaya karar verir (başka bir yerde gerekli olması durumunda) ve yüksek performanslı tekniklerini (bonus) dahil etmeye karar verir.

Programcı, 11584 * 11584'ün 128 MB olduğunu hesaplar, bu nedenle devasa bir tablo için ÇALIŞMA DEPOLAMA ve gereken her şey için YEREL DEPOLAMA kullanılır.

Programcı kodlar ve derleme temiz olduğunda kendilerine bilerek gülümser. 128 MB hakkında haklıydılar.

Kodu test ediyor. İşe yarıyor. Muhtemelen biraz yavaş ama makinede ağır bir yük var. Yine gülümsüyor, uzmanlık bilgisi olmadan kodlanmanın ne kadar yavaş olacağını düşünüyor.

ÇALIŞMA-DEPOLAMA 134,189,056 baytta geliyor ve başka birkaç iyi bayt var. Yeterince büyük olmalı.

Gerçek şu ki, kısa bir karşılaştırma yerine uzun bir karşılaştırma yapmanın, burada uygulandığı gibi, bunu yapmanın çok yavaş bir yoludur.

Daha yavaş olsa da, bir alt program çağrıldığında çalışma zamanı rutinleri tarafından başlatılan LOCAL-STORAGE, her CALL için ayarlanmış 128 MB'ın tamamına neden olur.

Programcı tablonun büyüklüğü ile ilgili olarak açıkça yanlış, YEREL DEPOLAMA kullanmadan yeterli yer var. Uzun karşılaştırmalar kısa karşılaştırmaları geçebilir, ancak yalnızca gerçek karşılaştırma sayısı azaldığında.

YEREL DEPOLAMA ve ÇALIŞMA-DEPOLAMA takas etmeyi düşündüm, birinin bu şekilde kodlaması çok azdı, bu yüzden yapmadım. Masanın üzerine bir DEĞER YERİ koymak (eğer YEREL DEPOLAMA'da olsaydı) , her ÇAĞRI üzerinde tabloyu iki kez başlatırdı, hatta daha yavaş.

Bloat, programı yeniden yazmadan kaldırılamaz. Kodun çoğu kötü, ancak kullanışlı bir teknik var.

Bu gerçek hayattan bir örnek değil, ancak yeterince zeki biri varsa, birinin yaptığını hayal edebiliyorum.

Derleme hiç sorun değil. Her olasılıkla hızlı bir şekilde çalıştırmak, denemeye değer olmadığını kanıtlar.

Tabii ki, düz eski bir böcek de var. "Arama" görevlerinde çok yaygın olanı.


0

PowerBASIC

#BLOAT(104857600)
FUNCTION PBMAIN
  PRINT "Hello World"
  BEEP
END FUNCTION

Bu sorudaki C örneğiyle karşılaştırılabilir.
Vi.

0

Scala

import scala.{specialized=>s}
import scala.Specializable.{Everything=>E}
class Printer[@s(E) A, @s(E) B, @s(E) C, @s(E) D, @s(E) E, @s(E) F, @s(E) G, @s(E) H]{
    def print(a:A,b:B,c:C)=println(s"$a, $b, $c")
}

object Main extends App{ 
    (new Printer[Int,Int,Int,Int,Int,Int,Int,Int]).print(1,2,3)
}

Özel açıklama, türlerin tümü nesnelere dönüştüğünde boks yapmayı önlemek için her tür için yeni bir sınıf oluşturur. EverythingÖnce çökmezse, 10 ^ 8 (( 10 türden oluşur) ^ (sınıfta 8 tür parametreden)) sınıf dosyaları oluşturur.


Bu, özellikle sınıf gerçekten basılacak bir yöntemden fazlasını yaptığında performansın önemli olduğunu söyleyerek açıklanabilir. Hepsini bildirmek yerine genel uzmanlık yöntemlerini kullanmak, fark edilmesini zorlaştıracaktır.


Bunu oluşturmak için hangi ölçek versiyonuna ihtiyacım var? 2.9.2 + dfsg-1 s "her ne" yi sevmez ve scala hakkında bir şey bilmiyor. Özelleştirilebilir.
Vi.

Scala 2.10, s "" işaretli enterpolasyonlu dizeleri içeriyor, ancak bu dizeyi boyut üzerinde herhangi bir etkisi olmadan kaldırabilirsiniz. Scala 2.8'ın uzmanlık özelliği vardır, bu nedenle enterpolasyonlu dizeyi çıkarırsanız her şey iyi sonuç vermelidir.
user60561

-2

JavaScript

function bigenough(){
        var kbytes = $('html').html().length;
        return (kbytes>1024*100);
}
while(!bigenough()){
$('html').append('<p>WASSUP</p>');}

Bu kodu bu sayfadaki Tarayıcı Konsolu'nda çalıştırın ve tamamlandığında sayfayı kaydedin. 100 MB'tan büyük bir dosya boyutu ile sonuçlanmalıdır. Hala test ediyorum. Gerçek boyutta bir kez yapılan gönderir.

güncelleme -
kaydedilen sayfa çalıştırılabilir sonuçtur. Kromun v8 motoru derleyicidir. Ve gönderdiğim kod program. Derlemenin çok uzun sürdüğünü itiraf ediyorum. : D


1
Gerektiği gibi çalışmıyor. Görev, çalıştırıldığında çok fazla bellek tüketen değil, çok büyük olan yürütülebilir bir dosya oluşturmaktır. Ayrıca, jQuery aşırı kullanımı.
John Dvorak

@JanDvorak 100 MB'tan büyük bir HTML dosyası oluşturacaktır. Ayrıca Soru, herhangi bir JQuery kullanım sınırlamasını da belirtmemektedir. Program hala Chrome'umda yürütülüyor ve sayfa, Chrome Görev Yöneticisi tarafından bildirildiği gibi 300 MB bellek kullanıyor.
rahulroy9202

Olmayacak. Yaptığınız her ek tamamen bellekte olur. Kullanıcı bir kaydetme işlemini tetiklerse, yalnızca 100 MB'lık bir HTML dosyası oluşturur. Yapamayacağı ya da istemediği şey. Ayrıca, "derleme" ekleyerek bu işlemi diyoruz bile ve bir dosya olarak ortaya çıkan HTML depolamak yönetmek, ben kendi derleyici yazmak için izin sanmıyorum.
John Dvorak

@JanDvorak Cevabı, sayfanın kaydedilmesi gerektiğine işaret ettim. burada, sayfa çalıştırılabilir sonuçtur. Kromun v8 motoru derleyicidir. Ve gönderdiğim kod program.
rahulroy9202

2
V8 küçücük "çalıştırılabilir" (sabit sürücüye onu alır hiç olur) ve yürütür bunu, üreten bir derleyici olduğunu o zaman bile derlenmiş olmayan bir dilde bir dev "kaynak dosyası" (üretmek için üzerine ilerler, ne de Programlama dili). Eğer betiğinizin sonucunu bir çalıştırılabilir (nope ...) olarak çağırırsanız , betiğinize V8 değil derleyiciyi çağırmalıyız . Komut dosyanız işlem sırasında yürütülürse derleme adı verilmez (makrolar bu çizgiyi bulanıklaştırır, ancak bu bir makro değildir)
John Dvorak
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.