Rychlost Chez Scheme

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Scheme
« Odpověď #45 kdy: 22. 01. 2023, 19:03:44 »
K původnímu tématu, překladač Chezu dělá v podstatě tohle: https://arxiv.org/pdf/2109.01950.pdf
Když se zdroják generuje (transpiluje) z typovaného jazyka, je kód zaručeně typově stabilní, a tedy rychlý. Pořád tam jsou rezervy, pokud se používají například jen induktivní typy, nemůže vzniknout referenční cyklus, a pak je tracing GC k ničemu, ale to je na jinou diskusi.


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Scheme
« Odpověď #46 kdy: 22. 01. 2023, 19:09:29 »
V kombinaci tyto techniky umožňují Chez Scheme dosahovat srovnatelné rychlosti s jazyky jako C nebo Rust, i když je Scheme dynamickým jazykem s vysokoúrovňovými abstrakcemi.
Je to tak, ale už se nějak točíme v kruhu.

Ink

  • *****
  • 655
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Scheme
« Odpověď #47 kdy: 22. 01. 2023, 19:57:23 »
bavíme se o Lispu
Dotaz byl o Scheme.

Scheme je dialekt Lispu, ale OK. Pojďme zpět k tématu - beru, že když se Chez používá v situaci s jasnými typy a vstup je nízkoúrovňový, je to rychlé. Otázka zní: Bylo by možno ve Scheme psát rozsáhlý, bezpečný, čitelný a výkonný kód?

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Scheme
« Odpověď #48 kdy: 22. 01. 2023, 20:03:37 »
Bylo by možno ve Scheme psát rozsáhlý, bezpečný, čitelný a výkonný kód?
Možné to jistě je, ale já beru Scheme jako cíl transpilace (podobně jako JS), psát přímo v něm bych moc nechtěl (není to peklo jako JS, ale ani žádná sláva). V nějakém příčetnějším dialektu si to dovedu představit (Racket), ale ten zas není tak rychlý.

Re:Rychlost Chez Scheme
« Odpověď #49 kdy: 22. 01. 2023, 20:58:04 »
V kombinaci tyto techniky umožňují Chez Scheme dosahovat srovnatelné rychlosti s jazyky jako C nebo Rust, i když je Scheme dynamickým jazykem s vysokoúrovňovými abstrakcemi.
Je to tak, ale už se nějak točíme v kruhu.

Děkuji a uvítám další názory na relevanci toho příspěvku.


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Scheme
« Odpověď #50 kdy: 22. 01. 2023, 21:11:51 »
V kombinaci tyto techniky umožňují Chez Scheme dosahovat srovnatelné rychlosti s jazyky jako C nebo Rust, i když je Scheme dynamickým jazykem s vysokoúrovňovými abstrakcemi.
Je to tak, ale už se nějak točíme v kruhu.
Děkuji a uvítám další názory na relevanci toho příspěvku.
Jen k tomu JIT bych ještě dodal, že je v tomto případě irelevantní (překlad probíhá AOT).

Re:Rychlost Chez Scheme
« Odpověď #51 kdy: 22. 01. 2023, 21:27:44 »
V kombinaci tyto techniky umožňují Chez Scheme dosahovat srovnatelné rychlosti s jazyky jako C nebo Rust, i když je Scheme dynamickým jazykem s vysokoúrovňovými abstrakcemi.
Je to tak, ale už se nějak točíme v kruhu.
Děkuji a uvítám další názory na relevanci toho příspěvku.
Jen k tomu JIT bych ještě dodal, že je v tomto případě irelevantní (překlad probíhá AOT).
Díky, někdo další ?

Ink

  • *****
  • 655
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Scheme
« Odpověď #52 kdy: 23. 01. 2023, 06:55:54 »
V kombinaci tyto techniky umožňují Chez Scheme dosahovat srovnatelné rychlosti s jazyky jako C nebo Rust, i když je Scheme dynamickým jazykem s vysokoúrovňovými abstrakcemi.
Díky, někdo další ?

Nevím, nakolik to považuješ za relevantní, ale C není Rust a v praxi má každý z těchto dvou jazyků, co se týče výkonu, trochu jinou pozici:

https://kornel.ski/rust-c-speed

Obecně vzato, řekl bych, že hodně záleží i na té horní vrstvě, jaké umožňuje abstrakce a jak se ty její konstrukce dají optimalizovat ve výsledném kódu.

Re:Rychlost Chez Scheme
« Odpověď #53 kdy: 23. 01. 2023, 06:57:44 »
Já nemůžu odolat :-)
Co říkáte na tuto odpověď?

Chez Scheme je implementace jazyka Scheme, který je dynamický, vysokoúrovňový jazyk s podporou funkcionálního programování. Autoři Chez Scheme dosahují vysoké rychlosti pomocí několika technik:

Jit-kompilace: Chez Scheme používá just-in-time (JIT) kompilaci k překladu Scheme kódu do strojového kódu. Toto umožňuje, aby kód byl spuštěn rychleji, protože strojový kód může být vykonán přímo procesorem, namísto interpretace vysokoúrovňového kódu.
Typová analýza: Chez Scheme používá statickou typovou analýzu k detekci kódu, který může být efektivněji kompilován. Toto umožňuje, aby kód byl kompilován s využitím specifických optimalizací pro různé typy dat.
Předkompilace: Chez Scheme umožňuje předkompilovat často používaný kód, což umožňuje rychlejší spouštění programu.
Optimalizace: Chez Scheme používá různé techniky optimalizace, jako např. common subexpression elimination, constant folding a inlining, které zlepšují výkon kódu.
V kombinaci tyto techniky umožňují Chez Scheme dosahovat srovnatelné rychlosti s jazyky jako C nebo Rust, i když je Scheme dynamickým jazykem s vysokoúrovňovými abstrakcemi.
Že z toho smrdí ChatGPT na sto honů.

Re:Rychlost Chez Schemei
« Odpověď #54 kdy: 23. 01. 2023, 08:36:02 »
Já nemůžu odolat :-)
Co říkáte na tuto odpověď?

Chez Scheme je implementace jazyka Scheme, který je dynamický, vysokoúrovňový jazyk s podporou funkcionálního programování. Autoři Chez Scheme dosahují vysoké rychlosti pomocí několika technik:

Jit-kompilace: Chez Scheme používá just-in-time (JIT) kompilaci k překladu Scheme kódu do strojového kódu. Toto umožňuje, aby kód byl spuštěn rychleji, protože strojový kód může být vykonán přímo procesorem, namísto interpretace vysokoúrovňového kódu.
Typová analýza: Chez Scheme používá statickou typovou analýzu k detekci kódu, který může být efektivněji kompilován. Toto umožňuje, aby kód byl kompilován s využitím specifických optimalizací pro různé typy dat.
Předkompilace: Chez Scheme umožňuje předkompilovat často používaný kód, což umožňuje rychlejší spouštění programu.
Optimalizace: Chez Scheme používá různé techniky optimalizace, jako např. common subexpression elimination, constant folding a inlining, které zlepšují výkon kódu.
V kombinaci tyto techniky umožňují Chez Scheme dosahovat srovnatelné rychlosti s jazyky jako C nebo Rust, i když je Scheme dynamickým jazykem s vysokoúrovňovými abstrakcemi.
Že z toho smrdí ChatGPT na sto honů.
Ano, výborně! Chtěl jsem a) zjistit jestli to jde poznat a za b) dostat z vás odborníků, jestli nekecá, což se mi zatím nepodařilo. Nevím o tom totiž vůbec nic. Díky za účast.

Ink

  • *****
  • 655
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Schemei
« Odpověď #55 kdy: 23. 01. 2023, 09:20:35 »
Ano, výborně! Chtěl jsem a) zjistit jestli to jde poznat a za b) dostat z vás odborníků, jestli nekecá, což se mi zatím nepodařilo. Nevím o tom totiž vůbec nic. Díky za účast.

ChatGPT se nedá věřit, umí jenom papouškovat, je schválně natrénovaný, aby měl levicové "názory" a esej s opačným názorem dokonce odmítne vytvořit. A lže: Napřed mi tvrdil, že Modlitbu pro Martu napsal Nohavica, když jsem se ohradil, řekl, že mám pravdu a napsal ji Kryl a když jsem mu napsal, kdo byli skuteční autoři, tak mi to odkýval a tvářil se, že jsme v pohodě. No, nejsme.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Scheme
« Odpověď #56 kdy: 23. 01. 2023, 10:28:25 »
Nevím, nakolik to považuješ za relevantní, ale C není Rust a v praxi má každý z těchto dvou jazyků, co se týče výkonu, trochu jinou pozici:

https://kornel.ski/rust-c-speed

Obecně vzato, řekl bych, že hodně záleží i na té horní vrstvě, jaké umožňuje abstrakce a jak se ty její konstrukce dají optimalizovat ve výsledném kódu.
To se týká každého “vyššího” jazyka, Rust je ještě poměrně nízko, vem si Lean nebo Prolog, dělají věci úplně jinak než “normální” procedurální jazyky, ale kód také generují rychlý (protože high-level optimalizace).

Ink

  • *****
  • 655
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Scheme
« Odpověď #57 kdy: 23. 01. 2023, 10:52:08 »
Nevím, nakolik to považuješ za relevantní, ale C není Rust a v praxi má každý z těchto dvou jazyků, co se týče výkonu, trochu jinou pozici:

https://kornel.ski/rust-c-speed

Obecně vzato, řekl bych, že hodně záleží i na té horní vrstvě, jaké umožňuje abstrakce a jak se ty její konstrukce dají optimalizovat ve výsledném kódu.
To se týká každého “vyššího” jazyka, Rust je ještě poměrně nízko, vem si Lean nebo Prolog, dělají věci úplně jinak než “normální” procedurální jazyky, ale kód také generují rychlý (protože high-level optimalizace).

Nejsem si jistý, zda každého, ale určitě to není věc výlučně Rustu. Co se týče Leanu, tak kvůli němu vznikla celá tahle debata, nebo to byl jiný jazyk kompilovaný skrze Chez?

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rychlost Chez Scheme
« Odpověď #58 kdy: 23. 01. 2023, 11:12:15 »
Co se týče Leanu, tak kvůli němu vznikla celá tahle debata, nebo to byl jiný jazyk kompilovaný skrze Chez?
Ne, Lean se překládá přímo a jeho sémantika překlad do Scheme ani neumožňuje.

Re:Rychlost Chez Schemei
« Odpověď #59 kdy: 23. 01. 2023, 17:03:03 »
Ano, výborně! Chtěl jsem a) zjistit jestli to jde poznat a za b) dostat z vás odborníků, jestli nekecá, což se mi zatím nepodařilo. Nevím o tom totiž vůbec nic. Díky za účast.

ChatGPT se nedá věřit, umí jenom papouškovat, je schválně natrénovaný, aby měl levicové "názory" a esej s opačným názorem dokonce odmítne vytvořit. A lže: Napřed mi tvrdil, že Modlitbu pro Martu napsal Nohavica, když jsem se ohradil, řekl, že mám pravdu a napsal ji Kryl a když jsem mu napsal, kdo byli skuteční autoři, tak mi to odkýval a tvářil se, že jsme v pohodě. No, nejsme.
JJ, na Grétu jsem se ho ptát neměl, to teda byla přednáška :-)