A InfoWiki wikiből
(→Példaprogramok) |
|||
1. sor: | 1. sor: | ||
+ | <page a="Projekt|Projektek">TITÁN projekt</page> | ||
__NOTOC__ | __NOTOC__ | ||
- | |||
- | |||
<alcim l1="titan:Nyitolap|Összefoglaló" l2="titan:titan-m|Magas szint" l3="titan:titan-a|Assembly szint" l4="titan:opr|Operációs rendszer">l2</alcim> | <alcim l1="titan:Nyitolap|Összefoglaló" l2="titan:titan-m|Magas szint" l3="titan:titan-a|Assembly szint" l4="titan:opr|Operációs rendszer">l2</alcim> |
A lap 2009. január 10., 16:21-kori változata
Támogatott jellemzők
- C#-ban is ismert alapvető nyelvi típusok
- longInt és longDouble tetszőleges hosszú és pontosságú számok kezelése
- lusta és szigorú kiértékelés (lazy, strict)
- szekvenciális végrehajtás
- C# natív kódú függvények meghívása
- függvénnyel paraméterezhetőség (currying)
- egygépes, többszálú, elosztott kódvégrehajtás támogatása kiértékelési stratégiákkal
Szintaktikai leírás
Példaprogramok
Listák
Kardinális kérdés lehet a listák kezelése, mivel listák átadása más függvényeknek, rekurzív feldolgozása során a listák másolása a memóriában nem megengedett teljesítménybeli és memóriahatékonysági megfontolásokból.
Ugyanakkor amennyiben egy függvény egy lista-paramétert fogad, majd továbbadja azt egy al-függvényének, és az al-függvénye ezt a listát elkezdi 'elfogyasztani', a lista elejének felszabadítása, és az elemek garbage elemésztése szükségszerű. Figyelni kell arra, hogy a hívó függvény e közben még a teljes listát 'birtokolhatja', ami viszont ellenáll a GC-nek, akkor is, ha egyébként már a listára nincs szüksége.
A fordítás és kódoptimalizálás során ezért figyelni kell, hogy amennyiben egy függvény a listát már nem kívánja használni, de lusta kiértékeléssel azt már továbbadta egy másik függvénynek, akkor ne foglalja azt tovább, és engedje dolgozni a GC-t ha az szükséges.