Sampo (ohjelmointikieli)

Sampo on vuonna 1983 kehitetty, suomen kieleen perustuva opetuskieleksi tarkoitettu ohjelmointikieli. Sen avainsanastoon kuuluu esimerkiksi si­japäätteitä.
Kielen kehitti Syslab Ay yhdessä Oulun yliopiston kanssa ja sitä on käytetty opetuksessa Oulussa Karjasillan lukiossa.

 Esimerkkejä 

Alla oleva esimerkki on otettu Mikro-lehdestä.

 MUUTTUJA ALOTUS MUUTTUJA LOPETUS 8 JONO PUHE
 ( TOIVOTAN KAIKKI TERVETULLEIKSI ) ALOTUS LLE
 ( ÄÄNESTÄKÄÄ MINUA ) LOPETUS LLE
 ( ELÄMME SUURISSA VAIKEUKSISSA ) 1 PUHE LLE
 ( TULEVAISUUS ON EPÄVARMAA ) 2 PUHE LLE
 ( MEHUA JA HILLOMUNKKEJA KAIKILLE ) 3 PUHE LLE
 ( ELÄKELÄISET KUNNIAAN ) 4 PUHE LLE
 ( NÄLKÄVYÖTÄ ON KIRISTETTÄVÄ ) 5 PUHE LLE
 ( KOTIÄIDEISSÄ ON TURVAMME ) 6 PUHE LLE
 ( LAPSILISÄT KAKSINKERTAISIKSI ) 7 PUHE LLE
 ( OPINTORAHA KYMMENKERTAISEKSI ) 8 PUHE LLE

 LUO : PITUUS PIKAPUHE
    ALOTUS ARVO . RIVI
    :PITUUS KERTAA 8 SATTUMA PUHE ARVO . RIVI VIELÄ?
    LOPETUS ARVO
 VALMIS

Ohjelma asettaa ensin PUHE-taulukkoon sekä ALOTUS ja LOPETUS -muuttujiin merkkijonoja ja määrittelee sen jälkeen PIKAPUHE-aliohjelman, jolla on PITUUS-parametri.
Aliohjelma tulostaa aloituksen, argumenttina annetun määrän satunnaisia merkkijonoja taulukosta sekä lopetuksen.

Sampoon kuuluu ydinominaisuutena tuki kilpikonnagrafiikalle. Alla oleva esimerkki esittelee tätä tukea.

alt=Mustavalkoinen viivapiirros kymmenestä satunnaisesti sijoitetusta kukasta. Kukissa on kuusi terälehteä. Konnan loppusijainti näkyy kolmiona oikean reunan kukan keskellä.|pienoiskuva|Konnagrafiikkaesimerkin tuottama kuva. Konnan loppusijainti näkyy kolmiona oikean reunan kukan keskellä.

KONNA ASEMA NÄYTÄ PINO NÄYTÄ

LUO :KOKO KAARI
    8 KERTAA :KOKO ETEEN 10 OIKEA VIELÄ?
VALMIS

LUO :KOKO TERÄLEHTI
    2 KERTAA :KOKO KAARI 8 * 10 = VASEN 180 VASEN VIELÄ?
VALMIS

LUO :KOKO KUKKA
    6 KERTAA :KOKO TERÄLEHTI 60 OIKEA VIELÄ?
VALMIS

10 KERTAA 640 SATTUMA 400 SATTUMA PAIKKA 20 SATTUMA KUKKA VIELÄ?

Aiheesta muualla
 Sampon dokumentaatio ja lähdekoodi GitHubissa

Lähteet

Luokka: Ohjelmointikielet