Project Valhalla (jazyk Java) - Project Valhalla (Java language)
Projekt Valhalla je experimentální OpenJDK projekt vývoje hlavních nových jazykových funkcí pro Jáva 10 a více. Projekt byl oznámen v červenci 2014 a jedná se o experimentální úsilí Věštec pod vedením inženýra Brian Goetz.[1]
Plánované funkce
Valhalla inkubuje funkce a vylepšení jazyka Java v těchto oblastech:[2]
- Typy hodnot; vysoce efektivní malé „objekty“ bez dědičnosti.
- Obecná specializace;
Seznam
například. - Reified Generics; zachování skutečného typu za běhu.
- vylepšeno 'nestálý ' Podpěra, podpora.
Tyto funkce budou vyžadovat jak syntaxi, tak změny na úrovni virtuálního počítače.
Projektová činnost
Projekt je organizován v adresáři OpenJDK „Project Valhalla“. Projekt Valhalla byl zahájen v experimentálních fázích s úvodním oznámením a počátečním návrhem počátečních návrhů.
Datum zveřejnění:
- Oznámení o projektu Valhalla
- Počáteční návrh „typů hodnot“
- Počáteční návrh „obecná specializace“
- State of Valhalla, Section 1: The Road to Valhalla
- State of Valhalla, Section 2: Language Model
Experimentální prototypy OpenJDK lze také sestavit z úložišť Mercurial. Ty začínají zahrnovat mnoho specializačních funkcí. Všimněte si, že se jedná o zdroje Gnu Make / C ++ a vytváření OpenJDK vyžaduje technické znalosti. Vidět Pokyny k sestavení OpenJDK pro detaily.
Technické výhody a důsledky
Výkon přístupu k paměti a efektivita „hodnotného“ přístupu k hodnotám jsou hlavní oblastí, kterou je třeba těmito funkcemi řešit. Funkce typu „hodnota“ a „obecná specializace“ (při použití na seznamy nebo kolekce) snižují využití paměti, ale co je důležitější, vyvarujte se nepřesměrování ukazatele, které obvykle způsobí vynechání mezipaměti.[3][4]
Namísto seznamu nebo pole odkazů na objekty, ukazující na datové hodnoty rozptýlené po paměti, vylepšení aplikace Project Valhalla umožní, aby byly hodnoty seznamu nebo pole potenciálně rozloženy lineárně - bez indirection - jako po sobě jdoucí blok paměti.
Typy hodnot se předpokládají jako „Kódy jako třída, funguje jako int!“[5] Synchronizace a dědičnost by byla u typů hodnot vyloučena. Ty by již nevyžadovaly identitu objektu a přidružené režie paměti / ukazatele, i když by byly schopny převzít „orámovaný“ formulář pro kompatibilitu.[4]
Viz také
Reference
- ^ Goetz, Brian. „Vítejte ve Valhalle!“. Archiv pošty OpenJDK. OpenJDK. Citováno 12. srpna 2014.
- ^ Evans, Ben. „Oracle uvádí na trh projekt Valhalla pro Javu“. InfoQ. InfoWorld. Citováno 12. srpna 2014.
- ^ Krill, Paul. „Navrhována nová generace projektu Valhalla; typy hodnot, obecná specializace a vylepšené těkavé látky jsou na seznamu přání projektu Valhalla.“. JavaWorld. InfoWorld. Citováno 12. srpna 2014.
- ^ A b „Typy a seznam hodnot
přicházejí pro Javu 10?“ . LiterateJava.com. Citováno 12. srpna 2014. - ^ Rose, John; Goetz, Brian; Steele, chlapi. „Stav hodnot“. OpenJDK. Citováno 12. srpna 2014.