Korkean tason ohjelmointikieli on ohjelmointikieli , joka on suunniteltu nopeuteen ja ohjelmoijan helppokäyttöisyyteen . Korkean tason kielten pääominaisuus on abstraktio , eli semanttisten konstruktien käyttöönotto, jotka kuvaavat lyhyesti sellaisia tietorakenteita ja niillä suoritettavia operaatioita , joiden kuvaukset konekoodissa (tai muussa matalan tason ohjelmointikielessä ) ovat erittäin pitkä ja vaikea ymmärtää.
Korkean tason ohjelmointikielet on suunniteltu alustasta riippumattomiksi algoritmien olemuksesta. Riippuvuus alustasta siirtyy työkaluohjelmiin - kääntäjiin , jotka kokoavat korkean tason kielellä kirjoitetun tekstin peruskonekäskyiksi (käskyiksi). Siksi jokaiselle alustalle kehitetään alustakohtainen kääntäjä jokaiselle korkean tason kielelle, esimerkiksi kääntämällä Delphissä kirjoitetun tekstin perusohjeiksi x86 - perheen mikroprosessoreille .
Siten korkean tason kielet pyrkivät paitsi helpottamaan monimutkaisten ohjelmisto-ongelmien ratkaisemista, myös yksinkertaistamaan ohjelmistojen siirtämistä . Erilaisten kääntäjien ja tulkkien käyttö mahdollistaa korkean tason kielillä kirjoitettujen ohjelmien kommunikoinnin eri käyttöjärjestelmien , ohjelmoitavien laitteiden ja laitteiden kanssa, eikä se ihannetapauksessa vaadi lähdekoodin muokkaamista (korkealla kielellä kirjoitettu teksti ) mille tahansa alustalle.
Tällaisella korkean tason kielten irrottautumisella tietokoneen laitteistototeutuksesta on monien etujen lisäksi myös haittoja. Erityisesti se ei salli yksinkertaisten ja tarkkojen ohjeiden laatimista käytetyille laitteille. Korkean tason kielillä kirjoitetut ohjelmat ovat ohjelmoijan helpompia ymmärtää, mutta ne ovat vähemmän tehokkaita kuin matalan tason kielillä kirjoitetut ohjelmat . Yksi seuraus tästä oli yhden tai toisen matalan tason kielen (assembly language ) tuen lisääminen useisiin nykyaikaisiin korkean tason ammattikäyttöön tarkoitettuihin ohjelmointikieliin.
Esimerkkejä: C++ , C# , Delphi , Fortran , Java , JavaScript , Lisp , Pascal , PHP , myös Ruby , Python , Perl , joita joskus kutsutaan superkorkeaksi tasoksi . Korkean tason kielet pystyvät työskentelemään monimutkaisten tietorakenteiden kanssa. Useimmissa niistä on integroitu tuki merkkijonotyypeille , objekteille , tiedostojen I/O- operaatioille ja niin edelleen.
Ensimmäinen korkean tason ohjelmointikieli on Plankalkül - tietokonekieli , jonka saksalainen insinööri Konrad Zuse kehitti vuosina 1942-1946 . Kääntäjä sille oli kuitenkin olemassa vasta vuonna 2000. Maailman ensimmäinen korkean tason kielenkääntäjä on PP (Programming Program), eli PP-1, joka testattiin menestyksekkäästi vuonna 1954. PP-2-kääntäjä (1955, maailman neljäs kääntäjä) oli jo optimoimassa ja sisälsi jo oman latausohjelman ja virheenkorjausohjelman, kirjaston vakiomenettelyjä sekä PP-kääntäjän Strela-4- tietokoneelle . sisälsi linkkerin (linkkeri) moduuleista. Korkean tason kielten laaja käyttö alkoi kuitenkin Fortranin ilmaantumisen ja tämän kielen kääntäjän luomisen myötä ( 1957 ).
Vuonna 2018 Java -ohjelmointikieli on TIOBE Softwaren mukaan johtava .
Yleisesti uskotaan, että korkean tason kielillä kirjoitetut ohjelmat voidaan kirjoittaa kerran ja käyttää sitten missä tahansa tietokoneessa . Todellisuudessa tämä koskee vain niitä ohjelmia, jotka ovat vähän vuorovaikutuksessa käyttöjärjestelmän kanssa , esimerkiksi suorittavat laskelmia tai tietojenkäsittelyä. Useimmat interaktiiviset (ja varsinkin multimediaohjelmat) käyttävät järjestelmäkutsuja , jotka vaihtelevat suuresti käyttöjärjestelmän mukaan. Esimerkiksi grafiikan näyttämiseen tietokoneen näytöllä Microsoft Windows -ohjelmat käyttävät Windows API -toimintoja , jotka eroavat POSIX -standardia tukevissa järjestelmissä käytetyistä toiminnoista . Useimmiten he käyttävät X-palvelimen ohjelmointirajapintaa näihin tarkoituksiin .
Tähän mennessä on luotu useita ohjelmistokirjastoja (esimerkiksi Qt -kirjasto tai wxWidgets ), jotka piilottavat eri käyttöjärjestelmien järjestelmäkutsujen epäjohdonmukaisuudet sovellusohjelmilta . Tällaiset kirjastot eivät kuitenkaan yleensä anna sinun käyttää täysin tiettyjen käyttöjärjestelmien kaikkia ominaisuuksia.
Uusi trendi on hieman korkeamman tason ohjelmointikielten ilmaantuminen (ultrakorkea taso, ei pidä sekoittaa ultrakorkeaan tasoon ). Tällaisille kielille on ominaista lisärakenteiden ja -objektien läsnäolo, jotka on suunnattu soveltavaan käyttöön. Sovellusobjektit puolestaan vaativat minimaalisen konfiguroinnin parametrien muodossa ja ovat heti käyttövalmiita. Huipputason ohjelmointikielten käyttö vähentää ohjelmistokehitykseen kuluvaa aikaa ja parantaa lopputuotteen laatua, mikä taas johtuu lähdekoodien määrän vähentämisestä.