Portál AbcLinuxu, 30. dubna 2025 20:41

Pár postřehů z konference ScalaDays 2014

20.6.2014 21:57 | Přečteno: 910× | Co mě zaujalo

Co mě na konferenci ScalaDays 2014 zaujalo nejvíce.

Avian

Pracuje se na novém JVM Avian. Pro funkcionální jazyky je zajímavá podpora kontinuací a optimalizace tail-callů.

Makra

Je nešťastné, jak silnou pozici si vybudovala makra ve Scale. Řada přednášek se nějakým způsobem dotkla maker. Někteří přednášející dokonce svou celou přednášku zasvětili pouze jedinému makru.

Hlavní problém maker spočívá v jejich interakci. Například Heather Miller ve své prezentaci Spores: Towards Function-Passing Style in the Age of Concurrency and Distribution ukázala makro spore, kterým lze omezit volné proměnné, jenž smějí být součástí uzávěru. Problémy se mohou objevit ve chvíli, kdy na kód z makra spore aplikujeme jiné makro – jinému makru nic nebrání porušit omezení vynucená makrem spore.

DOT

DOT kalkulus by se mohl stát základem typového systému Scaly a je to možná jeden z kroků k formální (mechanizované) specifikaci Scaly. Taková specifikace by slovy Roberta Harpera znamenala posun od Scala kompilátoru ke Scala jazyku.

K čemu je formální specifikace ve své přednášce o denotační sémantice naznačil i Erik Meijer:

def a: Int = try {        1 } finally {        2 }
def b: Int = try {        1 } finally { return 2 }
def c: Int = try { return 1 } finally {        2 }
def d: Int = try { return 1 } finally { return 2 }

Zkuste říci, co jednotlivé funkce vrací.

       

Hodnocení: 83 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

20.6.2014 23:25 Jiří Jakeš | skóre: 22 | blog: Linuxovna_JJ | Taipei
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Odpovědět | Sbalit | Link | Blokovat | Admin
Závidím, že ses tam byl podívat. Já jen četl na Twitteru výkřiky J. Bonéra, V. Klanga, R. Kuhna a dalších, jak je to tam úžasné a skvělé. Snad budou brzy videa, témata vypadala extrémně zajímavě.
21.6.2014 12:06 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Odpovědět | Sbalit | Link | Blokovat | Admin
Pracuje se na novém JVM Avian. Pro funkcionální jazyky je zajímavá podpora kontinuací a optimalizace tail-callů.
Nejsou k tomu nejake slidy/paper? Zajimalo by me, jak to funguje vzhledem k tomu, ze tyto veci nemaji primou podporu v JBC.
Je nešťastné, jak silnou pozici si vybudovala makra ve Scale. Řada přednášek se nějakým způsobem dotkla maker. Někteří přednášející dokonce svou celou přednášku zasvětili pouze jedinému makru.
Ano, je to nestastne. Diskutovat dlouhe hodiny o makrech bylo vzdy vysadou LISParu. ;-]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
22.6.2014 02:35 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Zajimalo by me, jak to funguje vzhledem k tomu, ze tyto veci nemaji primou podporu v JBC.
Každé volání, jenž je v bajtkódu v tail pozici, se optimalizuje, tudíž žádná speciální instrukce není třeba. Háček je v tom, že volání, která jsou ve zdrojovém kódu v tail pozici, nemusí být v bajtkódu v tail pozici.

Kontinuace mají speciální podporu v runtimu, ta je přístupná přes třídu avian.Continuations.
Bedňa avatar 22.6.2014 01:40 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Odpovědět | Sbalit | Link | Blokovat | Admin
def a: Int = try {        1 } finally {        2 }
def b: Int = try {        1 } finally { return 2 }
def c: Int = try { return 1 } finally {        2 }
def d: Int = try { return 1 } finally { return 2 }
Zkuste říci, co jednotlivé funkce vrací.
a = 1

b = 2

c = 1

d = 2
KERNEL ULTRAS video channel >>>
22.6.2014 13:22 Miriam | skóre: 3 | blog: zivot
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Až na jedničku uvažuju stejně, jednička podle mě vrací null.
Bedňa avatar 22.6.2014 19:49 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Vychádzam z toho že
def a: Int = try {        1 } finally {        2 }
Sa do "a" pokúsi priradiť hodnotu z try {} a pokiaľ nieje niečo ako return vo finally {}, tak ostane 1.

Skalu vôbec nepoznám, je to čistá konšpirácia.
KERNEL ULTRAS video channel >>>
30.6.2014 16:29 Jirka P
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
To je blbost, ve Scale nevrací null skoro nic, kde není null explicitně uveden - a určitě ne ta jednička, ta je naopak úplně jasná. Horší je to s těmi ostatními možnostmi, ono return je ve Scale tak trochu poukázka do slzavého údolí.

Bendňa to má dobře, jak podle http://www.scala-lang.org/docu/files/ScalaReference.pdf, tak podle kompilátoru
scala> def a: Int = try {        1 } finally {        2 }
<console>:7: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses
       def a: Int = try {        1 } finally {        2 }
                                                      ^
a: Int

scala> def b: Int = try {        1 } finally { return 2 }
b: Int

scala> def c: Int = try { return 1 } finally {        2 }
<console>:7: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses
       def c: Int = try { return 1 } finally {        2 }
                                                      ^
c: Int

scala> def d: Int = try { return 1 } finally { return 2 }
d: Int

scala> (a, b, c, d)
res1: (Int, Int, Int, Int) = (1,2,1,2)                                                                                                                                                                                                                                         
Jinak jestli je tenhle celkem jasný příklad důvodem, proč formalizovat Scalu, tak to radši nedělat. Scala má mnohem závažnější mouchy.
1.7.2014 20:55 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Jinak jestli je tenhle celkem jasný příklad důvodem, proč formalizovat Scalu, tak to radši nedělat.
Formální specifikace usnadní tvorbu nástrojů a alternativních implementací, pomůže při návrhu jazyka a umožní provést důkaz korektnosti typového systému.
27.1.2024 15:40 UFAAUTO789
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Odpovědět | Sbalit | Link | Blokovat | Admin
ยูฟ่าเบท789 เว็บแทงบอลที่ใหญ่ และการเงินมั่นคงที่สุด สล็อตออนไลน์ ไม่มีขั้นต่ำ ใช้ทุนน้อย เล่นได้ทุกเกม
29.1.2024 20:05 ยูฟ่าเบท
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Odpovědět | Sbalit | Link | Blokovat | Admin
This the most tender part of love, each other to forgive. By far the best proof is experience. Success is a lousy teacher. It seduces smart people into thinking they can't lose. ยูฟ่าเบท
15.3.2024 15:45 BETFLIXSUPERVIP
Rozbalit Rozbalit vše Re: Pár postřehů z konference ScalaDays 2014
Odpovědět | Sbalit | Link | Blokovat | Admin
I think your blog might be having browser compatibility issues. When I look at your website in Ie, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, terrific blog!betflik vip

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.