Forskjell mellom versjoner av «Sjå»

Fra viktigperia, der sannhet møter veggen
Hopp til navigering Hopp til søk
 
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