Sjå

Fra viktigperia, der sannhet møter veggen
Revisjon per 14. des. 2024 kl. 08:49 av Simen (diskusjon | bidrag)
(diff) ← Eldre revisjon | Nåværende revisjon (diff) | Nyere revisjon → (diff)
Hopp til navigering Hopp til søk

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