Forskjell mellom versjoner av «Sjå»
Linje 71: | Linje 71: | ||
... | ... | ||
} | } | ||
+ | </pre> | ||
+ | |||
+ | == Sjå i C == | ||
+ | Det er mogleg å skrive Sjå i standard C ved å inkludere sjå.h, som ser slik ut: | ||
+ | |||
+ | <pre> | ||
+ | #define aksiom axiom | ||
+ | #define anten xor | ||
+ | #define anten_lik xor_eq | ||
+ | #define beskytta protected | ||
+ | #define bit_eller bitor | ||
+ | #define bit_og bitand | ||
+ | #define bredtekn_t wchar_t | ||
+ | #define bruk using | ||
+ | #define brøk float | ||
+ | #define byggjesett asm | ||
+ | #define definer typedef | ||
+ | #define denne this | ||
+ | #define dessutan default | ||
+ | #define dynamisk_lat_som dynamic_cast | ||
+ | #define døme case | ||
+ | #define eineståande static | ||
+ | #define eksporter export | ||
+ | #define eller or | ||
+ | #define eller_lik or_eq | ||
+ | #define elles else | ||
+ | #define fang catch | ||
+ | #define flyktig volatile | ||
+ | #define foranderleg mutable | ||
+ | #define fortsetje continue | ||
+ | #define forventar expects | ||
+ | #define gjer do | ||
+ | #define gjev return | ||
+ | #define heiltal int | ||
+ | #define hemmeleg private | ||
+ | #define hopp goto | ||
+ | #define hovud main | ||
+ | #define ihopsatt union | ||
+ | #define ikkje not | ||
+ | #define ikkje_lik not_eq | ||
+ | #define ikkjenoko void | ||
+ | #define ikkjenokopekar nullptr | ||
+ | #define importer import | ||
+ | #define inga_unntak noexcept | ||
+ | #define innmeldt register | ||
+ | #define justering alignof | ||
+ | #define justersom alignas | ||
+ | #define kaffipause break | ||
+ | #define kast throw | ||
+ | #define klasse class | ||
+ | #define ko_gjev co_return | ||
+ | #define ko_skap co_yield | ||
+ | #define ko_vent co_await | ||
+ | #define kompilator_krev static_assert | ||
+ | #define kompilator_lat_som static_cast | ||
+ | #define komplement compl | ||
+ | #define konsept concept | ||
+ | #define krev assert | ||
+ | #define lim_inn inline | ||
+ | #define liste enum | ||
+ | #define lovar ensures | ||
+ | #define medan while | ||
+ | #define modul module | ||
+ | #define moglegheitar switch | ||
+ | #define mønster template | ||
+ | #define namnerom namespace | ||
+ | #define negativ signed | ||
+ | #define noko auto | ||
+ | #define ny new | ||
+ | #define offentleg public | ||
+ | #define og and | ||
+ | #define og_lik and_eq | ||
+ | #define omtolk_lat_som reinterpret_cast | ||
+ | #define operasjon operator | ||
+ | #define oppbygnad struct | ||
+ | #define positiv unsigned | ||
+ | #define prøv try | ||
+ | #define refleksjonsuttrykkk reflexpr | ||
+ | #define revisjon audit | ||
+ | #define ri_over override | ||
+ | #define sann true | ||
+ | #define sannheit bool | ||
+ | #define siste final | ||
+ | #define skriv printf | ||
+ | #define slett delete | ||
+ | #define småtal short | ||
+ | #define stor long | ||
+ | #define storbrøk double | ||
+ | #define storleik sizeof | ||
+ | #define stort long | ||
+ | #define synkronisert synchronized | ||
+ | #define tekn char | ||
+ | #define tekn16_t char16_t | ||
+ | #define tekn32_t char32_t | ||
+ | #define tekn8_t char8_t | ||
+ | #define transaksjons_trygg transaction_safe | ||
+ | #define transaksjons_trygg_dynamisk transaction_safe_dynamic | ||
+ | #define treng requires | ||
+ | #define tråd_lokal thread_local | ||
+ | #define tydelig explicit | ||
+ | #define typenamn typename | ||
+ | #define udeleleg_avbryt atomic_cancel | ||
+ | #define udeleleg_inga_unntak atomic_noexcept | ||
+ | #define udeleleg_lagre atomic_commit | ||
+ | #define uekte virtual | ||
+ | #define uforanderleg const | ||
+ | #define uforanderleg_berekn consteval | ||
+ | #define uforanderleg_lat_som const_cast | ||
+ | #define uforanderleg_uttrykk constexpr | ||
+ | #define usann false | ||
+ | #define utandørs extern | ||
+ | #define uttrykk_type decltype | ||
+ | #define venn friend | ||
+ | #define viss if | ||
</pre> | </pre> | ||
[[Kategori:Skript]] | [[Kategori:Skript]] | ||
[[Kategori:Språk]] | [[Kategori:Språk]] |
Nåværende revisjon fra 14. des. 2024 kl. 08:49
Du trudde kanskje at å sjå var eit vanleg nynorsk verb? I så fall trur eg du skal sjå deg om etter eit par nye lesebrillar. Sjå er nemleg ein nynorsk variant av det velkjente programmeringsspråket C. Sjå vart utvikla under .nyno-bølgjen. Språket har mange fellestrekk med C, men inneheld også element som er karakteristisk for nynorsk programmering.
Variablar i Sjå
Sjå inneheld ikkje nøyakteg dei same variablane som C. Dei mest brukte variablane i Sjå er:
- Heiltal er Sjå-ekvivalenten av integer
- Flyttal heiter fosse (etter Jon Fosse) i Sjå. (Opprinneleg kunne ikkje flyttal definerast i Sjå, og ein måtte derimot bruke brudden brøk)
- Ekvivalenten av string heiter tarjei (kortform for Tarjei Vesaas-novelle).
Kontrollstrukturar i Sjå
Sjå er eit Turing-komplett språk, og inneheld kontrollstrukturar som liknar C:
- Ei while-løkkje definerast med å skrive medan
- Eit if-utsegn kan gjerast med å skrive viss
- case kallast med å skrive døme
- Ein kan introdusere ein break ved å skrive kaffipause
Døme på syntaks
heiltal a = 0 heiltal b = 3 heiltal i = 0 medan a<=b { i = i + 1 viss a==b { skriv('a er lik b') } elles { } viss i>10 { kaffipause } }
Spesielle element i Sjå
Sjå er tilrettelagt for parallellprosessering. For C-kompilatorar som er tilpassa parallellprosessering ville ein gjere følgjande for å parallellprosessere ei for-løkkje:
parfor ... { # Do parallell processing of operation }
I Sjå gjerast dette slik:
samstundes ... { # Gjer fleire operasjonar samstundes. }
Variantar av Sjå
Sjå Skarpt er ei objektorientert vidareutvikling av Sjå. Ein klasse er kalt ei bås i Sjå Skarpt, og kan enten vere offentleg (public) eller hemmeleg (private):
bås BåsNamn { heiltal variabelEin, variabelTo offentleg ... }
Sjå i C
Det er mogleg å skrive Sjå i standard C ved å inkludere sjå.h, som ser slik ut:
#define aksiom axiom #define anten xor #define anten_lik xor_eq #define beskytta protected #define bit_eller bitor #define bit_og bitand #define bredtekn_t wchar_t #define bruk using #define brøk float #define byggjesett asm #define definer typedef #define denne this #define dessutan default #define dynamisk_lat_som dynamic_cast #define døme case #define eineståande static #define eksporter export #define eller or #define eller_lik or_eq #define elles else #define fang catch #define flyktig volatile #define foranderleg mutable #define fortsetje continue #define forventar expects #define gjer do #define gjev return #define heiltal int #define hemmeleg private #define hopp goto #define hovud main #define ihopsatt union #define ikkje not #define ikkje_lik not_eq #define ikkjenoko void #define ikkjenokopekar nullptr #define importer import #define inga_unntak noexcept #define innmeldt register #define justering alignof #define justersom alignas #define kaffipause break #define kast throw #define klasse class #define ko_gjev co_return #define ko_skap co_yield #define ko_vent co_await #define kompilator_krev static_assert #define kompilator_lat_som static_cast #define komplement compl #define konsept concept #define krev assert #define lim_inn inline #define liste enum #define lovar ensures #define medan while #define modul module #define moglegheitar switch #define mønster template #define namnerom namespace #define negativ signed #define noko auto #define ny new #define offentleg public #define og and #define og_lik and_eq #define omtolk_lat_som reinterpret_cast #define operasjon operator #define oppbygnad struct #define positiv unsigned #define prøv try #define refleksjonsuttrykkk reflexpr #define revisjon audit #define ri_over override #define sann true #define sannheit bool #define siste final #define skriv printf #define slett delete #define småtal short #define stor long #define storbrøk double #define storleik sizeof #define stort long #define synkronisert synchronized #define tekn char #define tekn16_t char16_t #define tekn32_t char32_t #define tekn8_t char8_t #define transaksjons_trygg transaction_safe #define transaksjons_trygg_dynamisk transaction_safe_dynamic #define treng requires #define tråd_lokal thread_local #define tydelig explicit #define typenamn typename #define udeleleg_avbryt atomic_cancel #define udeleleg_inga_unntak atomic_noexcept #define udeleleg_lagre atomic_commit #define uekte virtual #define uforanderleg const #define uforanderleg_berekn consteval #define uforanderleg_lat_som const_cast #define uforanderleg_uttrykk constexpr #define usann false #define utandørs extern #define uttrykk_type decltype #define venn friend #define viss if