Luettelo ohjelmointikielistä. Matalan ja korkean tason ohjelmointikielet

Ohjelmointikieli on muodollinen kieli, joka on suunniteltu yhdistämään henkilö tietokoneeseen. Tieto- ja tietojenkäsittelyalgoritmi asetetaan ohjelmointikielellä. Elektroninen laskukone (ECM) havaitsee suoraan koneen kielellä esitetyn ohjelman, jonka ohjelmointi on erittäin hankalaa ihmisille.

Tietotekniikan kehitys johti ohjelmointikielten syntymiseen. Tällaisen kielen tarkoitus on varustaa laskennallisten kaavojen joukko lisätiedoilla, jotka muuttavat tämän sarjan algoritmiksi. Seuraavassa ohjelmointikielellä tarkoitetaan ohjelmien kokoamisen kieltä, ts. kieli, jolla algoritmi kirjoitetaan tietokoneen ongelman ratkaisemiseksi.

Ensimmäisen sukupolven tietokoneohjelmointi suoritettiin yksinomaan konekielellä. Konekieli on joukko sääntöjä tiettyjen toimintojen numeeriselle koodaukselle (useimmissa aritmeettisissa). Kaikille koneille on ymmärrettävissä vain binäärilukujärjestelmä, joka kuitenkin korvattiin oktaalilla, jotta ohjelmoijat voisivat lyhentää merkintöjä.

Numerojärjestelmä ymmärretään yleensä tekniikoiden joukkona numeroiden nimeämiseksi ja merkitsemiseksi. Tavallinen numeroiden merkintäjärjestelmä on paikallinen desimaalilukujärjestelmä sen mukaan, että sen numeerinen arvo riippuu missä tahansa tässä järjestelmässä käytettyjen numeroiden sijainnista. Binäärilukujärjestelmä on yksinkertaisin, koska se käyttää vain kahta numeroa: 0 ja 1, ja oktaalilukujärjestelmä on kätevä, koska sen kanta, nimittäin numeerinen arvo 8, on binäärilukujärjestelmän 2 kannan teho. Esimerkiksi desimaaliluku 65 voidaan kuvitella

Desimaalimuodossa:

6 x 101 + 5 x 100 = 65;

Oktaalijärjestelmässä kuten

1 × 82 + 0 × 81 + 1 × 80 = 101;

Ja binäärilukujärjestelmässä muodossa

1 × 26 + 0 × 25 + 0 × 24 + 0 × 23 + 0 × 22 + 0 × 2l + 1 × 20 = 100001.

Jokainen tietokoneen suoritettava toiminto on määritetty koneen kielellä komennoksi. Komento on tieto, joka esitetään muodossa, jonka avulla voit syöttää sen koneelle ja määrittää tietokoneen toiminnot tietyn ajan kuluessa. Siten jokainen komento määrittelee yleisesti ottaen tietyn osan tietojenkäsittelyprosessista, jota kutsutaan konetoiminnoksi. Käsittelyn alkutiedot toimitetaan pääsääntöisesti tiettyjen arvojen joukkona, joita yleensä kutsutaan tiedoiksi. Alkutietoja minkä tahansa toiminnon suorittamiseksi, mukaan lukien konetoiminto, kutsutaan operandeiksi.

Komennossa, yleisessä tapauksessa, toiminnon tyyppi, koneessa olevan alkuperäisen tiedon tallennuspaikka (osoite), josta koneen toiminto suoritetaan, tuloksen osoite ja seuraava suoritettava komento tämän jälkeen on ilmoitettava. Aritmeettisille operaatioille (tai operaatioille) alkuinformaatio asetetaan pääsääntöisesti kahden numeron muodossa, joten sen komennossa on määritettävä kaksi osoitetta. Näin ollen käskyn on sisällettävä opcode, joka määrittää suoritettavan konetoiminnon tyypin, ja neljä osoitetta: kaksi operandin osoitetta, tuloksen osoite ja seuraavan käskyn osoite. Tyypillisesti komennon vaadittu osoitteiden määrä on alle neljä.

Tietokoneessa, jossa on kolmen osoitteen komennot, seuraavan komennon osoitetta ei näytetä, mutta seuraavan muistisolun komento suoritetaan automaattisesti (yhdellä suuremmalla numerolla, joka on seuraavan komennon osoite). Jos esimerkiksi hyväksymme koodin 01 lisäysoperaatioon, niin kahden numeron lisäämiseksi soluista 2051 ja 2052 ja tulos sijoitetaan soluun numeroitu 2345, kolmen osoitteen koneessa komento näyttää tältä:

01 2051 2052 2345 26

Ensimmäinen parannus ohjelmointiprosessissa oli symbolisten osoitteiden käyttöönotto, mikä mahdollisti komentojen kirjoittamisen ja muistin varaamisen erikseen. Tämän tekniikan ydin koostuu koneen RAM -muistin jakamisesta matriiseiksi, joiden solujen lukumäärää ei tiedetä etukäteen, ja matriisisolujen lukumäärä annetaan aakkosnumeerisilla nimityksillä, kuten ai + 1, ai + 2 ,. ... ., joita kutsutaan symbolisiksi osoitteiksi. Muistin varaus suoritetaan määrittämällä numeeriset arvot kaikille ai: lle ohjelman koon jälkeen. Jälkimmäinen prosessi on puhtaasti mekaaninen ja voidaan automatisoida, ts. oikeiden osoitteiden osoittaminen voidaan antaa tietokoneelle itselleen.

Tämä parannus ohjelmointiprosessissa johti pian symbolisten ohjelmointikielten eli autokoodien luomiseen. Tällainen kieli eroaa konekielestä vain siinä mielessä, että käytetään symbolisia (aakkosellisia) nimityksiä komentooperaatiokoodin ja sen osoitteen ilmaisevien numeeristen arvojen sijasta. Siksi ensimmäisissä autokoodeissa oli henkilökohtainen vastaavuus symbolisella ohjelmointikielellä (tai koodauksella) kirjoitettujen toimintojen ja konekielellä annettujen ohjeiden välillä, mikä osoitettiin symbolilla 1: 1, joka on kirjoitettu kielen nimi. Esimerkiksi AUTOCODE 1: 1 - AUTO Coding one to one.

Autokoodien parantaminen ilmeni lisätyökalujen syntymisestä, jotka vahvistavat tavanomaisten sääntöjen mukaan toimintojen järjestyksen aritmeettisissa kaavoissa tai tarjoavat tarvittavissa olosuhteissa laskentaprosessin haarautumisen, ohjelmaosien jaksollisen toistamisen ja muut ongelman tilasta johtuvat toiminnot. Joten vähitellen autokoodit menettivät 1: 1-etuliitteen, ja niiden syöttökielet eivät muuttuneet puhtaasti koneellisiksi, vaan konekeskeisiksi. Koneen suuntaaminen tarkoitti, että nämä kielet perustuivat edelleen tietyn tietokoneen ohjeisiin. Ensimmäiset konekeskeiset kielet olivat yleensä epätäydellisiä. Joillakin kielillä laskentajakson kuvaus oli irrotettu kaavoista itsestään, toisilla oli monimutkaisia ​​symboleja, vähän visuaalisia tai liian erikoistuneita, toisia sovellettiin vain rajoitetun joukon ongelmien ratkaisemiseen. Suurin haittapuoli oli kielen liittäminen tähän koneeseen.

Toisen sukupolven koneiden myötä syntyi tarve luoda kieliä, jotka keskittyvät kokonaan tehtävien ominaisuuksiin eivätkä ole riippuvaisia ​​tietystä koneesta. Tätä vaatimusta pahensi se, että eri merkkien tietokoneet korvasivat nopeasti toisensa tai niitä käytettiin yhdessä. Ongelmapainotteisista ohjelmointikielistä tuli toisen sukupolven tietokoneiden symboli. Niiden kehitykseen vaikuttivat yhä enemmän tehtävien erityispiirteet eivätkä koneiden ominaisuudet. Etualalle tuli se, mikä oli yhteistä eri ongelmissa, ja tämä toi yhteen erilaisia ​​kieliä, jotka on luotu laskentaongelmien dominoinnin aikakaudella. Näitä kieliä kutsutaan yleensä muodollisiksi algoritmisiksi tai yksinkertaisesti algoritmisiksi kieliksi.

Muodolliselta algoritmikieleltä vaaditaan paljon. Ensinnäkin sen on oltava visuaalinen, mikä voidaan saavuttaa käyttämällä olemassa olevia matemaattisia symboleja ja muita helposti ymmärrettäviä kuvallisia keinoja. Toiseksi joustava, jotta mitä tahansa algoritmia voidaan kuvata ilman tarpeettomia komplikaatioita, jotka liittyvät visuaalisten välineiden puuttumiseen. Kolmanneksi kielen on oltava yksiselitteinen - kaikkien algoritmien tietueet, jotka on tehty kaikkien kielen sääntöjen mukaisesti, eivät saisi sallia erilaisia ​​tulkintoja. Neljänneksi, monivaiheinen - monimutkainen algoritmi voidaan kuvata yksinkertaisempien algoritmien yhdistelmänä. Lopuksi kielen tulisi olla yhtenäinen - toisaalta kuvavälineiden määrän ei pitäisi olla liian suuri, ja toisaalta on välttämätöntä, että samoja keinoja voidaan käyttää ilmaisemaan samoja tai toisiinsa liittyviä käsitteitä eri (tarkoituksensa mukaan) algoritmin osissa. Tällainen kieli palvelee:

Ajatuskeino - ehdotetun menetelmän ongelmanratkaisumenettelyn looginen epätäydellisyys paljastuu usein tämän menetelmän kirjoittamisprosessissa algoritmisella kielellä;

· Ihmisten välinen viestintäkeino - yhden henkilön suorittaman prosessin kuvauksen tulisi olla toisen saatavilla;

· Välittäjä ihmisen ja koneen välillä - tässä tapauksessa käännös algoritmikielestä koneen kielelle suoritetaan itse koneella käyttämällä erityisohjelmaa - kääntäjää.

Yksi ensimmäisistä ja menestyneimmistä tällaisista kielistä oli IBM: n kehittämä Fortran. Vuonna 1954 ryhmä amerikkalaisia ​​ohjelmointiasiantuntijoita julkaisi ensimmäisen raportin Fortran -kielestä. Kielen nimi tulee lauseesta TRANslation - kaavojen muuntaminen. Fortranin kieli ei ole vain ollut olemassa tähän päivään asti, vaan sillä on myös luottamuksellisesti maailman ensimmäinen esiintyvyys. Syistä tähän pitkäikäisyyteen voidaan mainita sekä Fortranin itsensä että sille tarkoitettujen kääntäjien yksinkertainen rakenne. Fortran -ohjelma on kirjoitettu lauseiden tai operaattoreiden muodossa (operaattori tarkoittaa tietyn tiedonmuutoksen kuvausta), ja se laaditaan tiettyjen sääntöjen mukaisesti. Nämä säännöt asettavat rajoituksia erityisesti tallennuksen muodolle ja operaattorin osien järjestelylle tallennusoperaattoreiden lomakkeen riville. Fortran -ohjelma on yksi tai useampi lausuntojen segmentti (aliohjelma). Segmenttiä, joka ohjaa koko ohjelman toimintaa kokonaisuutena, kutsutaan pääohjelmaksi.

Fortran suunniteltiin käytettäväksi tieteellisessä ja teknisessä laskennassa. Tämä kieli voi kuitenkin helposti kuvata haarautuneen logiikan tehtäviä (tuotantoprosessien mallintaminen, pelitilanteiden ratkaiseminen jne.), Joitain taloudellisia ongelmia ja erityisesti editointitehtäviä (taulukoiden, yhteenvetojen, lausuntojen laatiminen jne.).

Vuonna 1958 ilmestynyttä Fortran -kielen muutosta kutsuttiin nimellä Fortran II, ja se sisälsi aliohjelman käsitteitä ja jaettuja muuttujia segmenttien välisen viestinnän aikaansaamiseksi.

Vuoteen 1962 mennessä Fortran IV -kielen, josta on tullut yleisin tällä hetkellä, syntyminen kuuluu. Samaan aikaan komission työn alku American Standards Associationissa (ASA), joka kehitti (vuoteen 1966 mennessä) kaksi standardia - Fortranin kielet ja perus (tärkein) FORTRAN (Basic FORTRAN). Nämä kielet vastaavat suunnilleen muutoksia IV ja II, mutta perus Fortran on osa Fortrania, kun taas Fortran II ei ole Fortran IV: lle.

Fortran -kieli kehittyy edelleen ja paranee, mikä vaikuttaa muiden kielten luomiseen ja kehittymiseen. Esimerkiksi Fortran on perusta BASIC-dialogikielelle ja sen BASIC-plus -laajennukselle, jota käytetään laajasti kaikissa ajanjakojärjestelmissä, ja kieleille, joilla opetetaan algoritmikielten käytön taitoja ohjelmointikäytännössä. Nämä kielet toteutetaan erityisesti henkilökohtaisissa tietokoneissa. Tällä hetkellä on luotu uusi standardi - Fortran 77.

Pian Fortranin (1957) luomisen jälkeen ilmestyi ALGOritmic Language (ALGOritmic Language), joka luotiin laajan kansainvälisen yhteistyön pohjalta. Vuonna 1960 julkaistiin virallinen viesti algoritmikielestä nimeltä Algol-60, jossa numero 60 tarkoittaa kielen hyväksymisvuotta.

Algol-60 luotiin Fortranin kehittämisen ja käytännön sovelluksen jälkeen, joten sille on ominaista sekä uusien mallien käyttöönotto että Fortranissa saatavilla olevien konseptien yleistäminen. Jos esimerkiksi Fortranissa operaattorit on jaettu toiminnallisesta näkökulmasta suoritettavaksi ja ei-suoritettavaksi, Algolissa tällaista jakoa ei ole, ja ei-suoritettavien Fortran-operaattoreiden rooli on rakenteilla, joita kutsutaan kuvauksiksi.

Muitakin eroja on. Fortranilla ja Algolilla on kuitenkin yhteistä se, että molemmat kielet perustuvat ilmaisukäsitteeseen, joka on käytännössä sama kuin matemaattinen lauseke, joka käyttää vain algebrallisia operaatioita ja alkeisfunktioita. Yksinkertaisimmat objektit, joista lausekkeet koostuvat, ovat kokonaislukuja ja likimääräisiä reaalilukuja ja loogisia arvoja.

Algol tunnetaan laajalti erittäin kätevänä työkaluna algoritmien julkaisemiseen ja ohjelmoinnin perusteiden opettamiseen.

Viime aikoihin asti sekä Fortran että Algol-60 ansaitsivat oikeutetusti yleismaailmallisten kielten nimen, koska ne tarjosivat suurimman osan tieteellisistä ja teknisistä ongelmista (lähinnä laskennallisia). Mutta mikään näistä kielistä ei tietenkään sallinut kuvata kaikkia syntyviä ongelmia poikkeuksetta. Siksi suunnilleen samaan aikaan ilmestyi algoritmikieliä, joilla oli erilainen suuntaus ja jotka täyttivät niiden uusien tieteen ja tekniikan alojen tarpeet, jotka alkoivat kehittyä voimakkaasti seuraavina vuosina.

Esimerkki on taloudelliset tehtävät - aineellisen omaisuuden, valmistettujen tuotteiden, henkilöstön, talouden jne. yritys tai teollisuus. Tällaisia ​​tehtäviä varten tärkeimmät toimet ovat syöttö- ja tulostustoiminnot, joissa on suhteellisen pieni määrä yksinkertaisia ​​laskelmia, sekä tietomatriisien peräkkäinen käsittely. Tällaisten toimintojen kuvaus voidaan suorittaa IBM: n vuonna 1959 ehdottamalla Cobol -kielellä (COmmon Business Oriented Language).

Symbolisen tiedon käsittelyn tehtävät syntyvät pääasiassa tieteellisen tutkimuksen alalla. Tämä on esimerkiksi kaavojen muuntaminen, yhtälöiden ratkaisu (ei numeerinen, mutta analyyttinen), keinotekoisella tai luonnollisella kielellä tehtyjen tekstien analysointi ja synteesi (erityisesti automaattinen ohjelmointi ja konekäännökset) jne.

Symbolisten tietojen käsittelykielistä Lisp -kieli, jonka tutkijaryhmä loi vuonna 1960 Massachusettsin teknillisessä instituutissa, on erittäin suosittu lähinnä fyysisten ja matemaattisten tieteiden edustajien keskuudessa. Tällä kielellä kaikki käsiteltävät tiedot, myös itse ohjelma, on järjestetty ns. Luetteloiksi - elementtisarjoiksi. Elementti voi olla ensisijainen (kirjain tai numero) tai vuorostaan ​​luettelo. Tällä tavalla voi syntyä mielivaltaisesti monimutkaisia ​​rakenteita.

Toista kieltä - Snobolia - käytetään pääasiassa luonnollisilla kielillä kirjoitettujen tekstien koneelliseen analysointiin. Siinä pääkäsite on merkkijono - mielivaltainen kirjainten, numeroiden ja muiden merkkien sarja. Pääoperaatio on etsiä merkkijonosta tiettyyn kuvaan rakennettu merkkijonon osa ja korvata tämä osa toisella merkkijonolla. Sekä kuva että sitä korvaavat viivat koostuvat yksinkertaisista tyypeistä. Hakutulos määrää jatkotoimien järjestyksen. Snobol -kieli on erittäin helppo oppia.

Ongelmaorientoituneiden, koneesta riippumattomien algoritmikielien tärkein etu on, että ne on rakennettu ottamalla mahdollisimman tarkasti huomioon henkilön ideat, jos ei oletuksesta, sitten ratkaistavan ongelman muodosta ja suurin mahdollinen lähentäminen muodossa, jossa henkilö on tottunut kuvaamaan näitä tehtäviä ja ottamaan huomioon loogiset yhteydet, jotka hän oppi korostamaan tutkituissa ilmiöissä.

Esimerkiksi Algolille on ominaista lähentäminen tavanomaiseen matemaattiseen symbolismiin. Fortran, toisin kuin Algol, on lähempänä konekieltä kuin ihmisten kieltä. Lispille on ominaista ns. Rekursiivisten kuvausten laitteen käyttö, jota käytetään laajalti matemaattisessa logiikassa, matematiikan perusteiden tutkimuksissa jne.

Toisen sukupolven tietokoneiden aikakaudella esiintyneiden algoritmien kielten runsaus selittyy suurelta osin muodilla, toisaalta sillä, ettei mikään ehdotetuista kielistä pysty kuvaamaan kätevästi kaikkia syntyneet ongelmat. Kolmannen sukupolven tietokoneet ovat ottaneet asialistalle uuden lähestymistavan kehittämisen todella universaalin algoritmikielen luomiseen.

Yksi tällaisista yrityksistä on IBM: n luoma algoritmikieli PL / 1 (ohjelmointikieli / 1 - yksi ohjelmointikieli). Se perustuu Fortranin ja Cobolin kieliin, ja monet kuvalliset keinot ja käsitteet on otettu Algolista ja muista kielistä, erityisesti kielistä symbolisten tietojen käsittelyyn. Myöhemmin julkaistiin useita kieliversioita, jotka olivat hyvin erilaisia, mutta kieli vakiintui vähitellen, ja nyt uudet julkaisut eroavat aiemmista vain toimituksellisilla muutoksilla, epätarkkuuksien poistamisella tai yksittäisten elementtien parantamisella.

PL / 1 -kielellä kirjoitetun ohjelman pääelementit ovat operaattoreita, joiden avulla sekä tietoja että niiden käsittelyoperaatioita kuvataan. Analogisesti Fortranin kanssa alkuperäinen ohjelma on kokoelma pääohjelmaa ja aliohjelmia lohkon muodossa. Lohkon käsite PL / l perustuu lohkon käsitteisiin Algol-60-kielellä. Tämä kieli on siis rakennettu kokonaisuutena olemassa olevien algoritmikielien käsitteiden ja niiden perinteiden perusteella.

Toinen yritys liittyy Algolin kehittämiseen. Vuonna 1968 julkaistiin asiakirja, jossa esiteltiin uuden universaalin algoritmikielen, nimeltään Algol-68, perusteet. Tällä kielellä peruskäsitteiden määrä on pienennetty kohtuulliseen minimiin, jotta saavutetaan kielen korkea visuaalinen voima, mikä takaa näiden käsitteiden yhdistelmän ja vuorovaikutuksen vapauden.

Algol-68-kieli on perinteinen, koska halutaan tarjota kaikille käyttäjille valmiita työkaluja algoritmiensa kuvaamiseen. Tähän asti tämä lähestymistapa ei voinut estää uusien erikoiskielien syntymistä. Joten vuonna 1971 julkaistiin algoritminen kieli Pascal, joka on nimetty 1600 -luvun suuren ranskalaisen tiedemiehen mukaan, joka keksi ensimmäisenä maailmassa automaattisen laitteen, joka mahdollistaa numeroiden lisäämisen. Pascal-kieli on Algol-60: n seuraaja, sillä on samanlaisia ​​rakenteita kuin PL / l ja Algol-68, mutta Pascal on lakonisempi. Pascal-kieli on melkein yhtä yksinkertainen kuin BASIC, mutta Pascal edistää uudenaikaisen ohjelmointitekniikan käyttöönottoa, joka perustuu vähitellen määritellyistä menettelyistä koostuvan ohjelman asteittaiseen rakentamiseen. rakenteellisen ohjelmoinnin ideat toteutetaan johdonmukaisesti. Toinen Pascalin merkittävä piirre on tietorakenteen käsite yhtenä peruskäsitteistä, jotka ovat yhdessä algoritmin käsitteen kanssa ohjelmoinnin ytimessä.

70 -luvun lopun pascal -kielen perusteella luotiin adakieli, jolla on erittäin laaja soveltamisala. Kieli on nimetty ensimmäisen naisohjelmoijan Ada Lovelayn mukaan. Adan algoritmisella kielellä on tapahtunut tiettyjä muutoksia evoluutioprosessissa, ja sillä on nyt kaikki vakiokielen tunnusmerkit. Se on hyvin jäsennelty kieli, joka soveltuu erityisesti reaaliaikaisten järjestelmien kehittämiseen. Ada -kieli on kuitenkin liian hankala, monitahoinen eikä tarjoa ohjelmoijalle riittävää vapautta.

Toisin kuin edellä luetellut korkean tason kielet, jotka ilmestyivät 80-luvun alussa, C-ohjelmointikieli on suhteellisen matalan tason kieli. Mutta tämä ei tarkoita, että tämä kieli ei olisi tarpeeksi voimakas. C -kieli on yleinen kieli, joka liittyy läheisesti suosittuun UNIX -käyttöjärjestelmään (sekä UNIX -järjestelmä että sen ohjelmisto on kirjoitettu C -kielellä). Algoritminen kieli C heijastaa täysin nykyaikaisten tietokoneiden ominaisuuksia, joten voit kirjoittaa erittäin tehokkaita ohjelmia ilman kokoonpanokieliä, lähinnä yksinkertaisten, peräkkäisten ohjausvirtojen rakenteen vuoksi. Tarkistuksia, silmukoita, ryhmittelyä ja aliohjelmia tarjotaan, mutta ei moniohjelmointia, rinnakkaisoperaatioita, synkronointia ja korutiinia - tehokkaiden kielten välttämättömiä ominaisuuksia (Ada, PL / 1, Algol -68).

Viime aikoina on ollut taipumus luoda niin sanottuja laajennettavia universaaleja kieliä. Tämän suuntauksen pääideana ei ole välttää erikoistuneita murtokieliä, vaan luoda yhteinen perusta "murteiden ohjelmoinnille".

Laajennettavalla kielellä on oltava tilat minkä tahansa laajennuksen tekstien kieliopilliseen jäsentämiseen, jotta voidaan selvittää, mitkä tekstit ovat kieliopillisesti oikein tietylle murteelle ja mikä rakenne niillä on. Tällaisen kielen pitäisi antaa tuleville kuluttajille useita tärkeitä mahdollisuuksia: esimerkiksi rakentaa semanttisia malleja (eli ottaa käyttöön uusia termejä kuvaamaan heidän ilmaisemiaan käsitteitä, niiden suhdetta joihinkin peruskäsitteisiin ja aiemmin käyttöön otettuihin käsitteisiin) ), kuvata laajennusten toteuttamista - tapoja niiden tarkoituksenmukaisin esitys nykyaikaisten tietokoneiden käytettävissä olevilla keinoilla. Laajennettavia kieliä on muitakin ominaisuuksia, jotka voidaan huomata.

^

Ohjelmointikielet ja -järjestelmät

  1. Ohjelmointikielien kehittäminen

Ohjelmointikielien sukupolvet

Ohjelmointikielet on tapana jakaa viiteen sukupolveen.

^ Ensimmäisessä sukupolvessa sisältää kielet, jotka on luotu 50 -luvun alussa, kun ensimmäiset tietokoneet ilmestyivät. Se oli ensimmäinen kokoonpanokieli, joka perustui yhden käskyn, yhden rivin periaatteeseen.

Kukoistava toinen sukupolvi Ohjelmointikielet tulivat 50 -luvun lopulla - 60 -luvun alussa. Sitten kehitettiin symbolinen kokoonpanija, jossa muuttujan käsite ilmestyi. Siitä tuli ensimmäinen täysimittainen ohjelmointikieli. Sen ulkonäön ansiosta kehityksen nopeus ja ohjelmien luotettavuus ovat lisääntyneet huomattavasti.

Nousu kolmas sukupolvi Ohjelmointikielet luetaan yleensä 60 -luvulle. Tällä hetkellä syntyi korkean tason universaaleja kieliä, joiden avulla on mahdollista ratkaista ongelmia kaikilla aloilla. Uusien kielten ominaisuudet, kuten suhteellinen yksinkertaisuus, riippumattomuus tietystä tietokoneesta ja kyky käyttää tehokkaita syntaktisia rakenteita, ovat lisänneet dramaattisesti ohjelmoijien tuottavuutta. Näiden kielten rakenne, joka on ymmärrettävissä useimmille käyttäjille, houkutteli heitä kirjoittamaan pieniä ohjelmia (yleensä teknisiä tai taloudellisia) Suurinta osaa tämän sukupolven kielistä käytetään nykyään menestyksekkäästi.

Kielien aika kestää 70 -luvun alusta nykypäivään neljäs sukupolvi... Nämä kielet on tarkoitettu suurten projektien toteuttamiseen, mikä lisää niiden luotettavuutta ja luomisen nopeutta. Ne keskittyvät erikoistuneille sovellusalueille, joilla voidaan saavuttaa hyviä tuloksia käyttämällä yleismaailmallisia, mutta ongelmallisia kieliä, jotka toimivat kapean aihealueen erityiskäsityksillä.

Tyypillisesti näillä kielillä on tehokkaat operaattorit, jotka kuvaavat toimintoja yhdellä rivillä, mikä vaatisi tuhansia riviä lähdekoodia toteuttaakseen alemman sukupolven kielillä.

Kielten syntymä viides sukupolvi tapahtui 90-luvun puolivälissä. Näitä ovat myös järjestelmät sovellusohjelmien automaattiseen luomiseen visuaalisen kehityksen työkalujen avulla ilman ohjelmointitietoa.

Näiden kielten pääidea on mahdollisuus generoida tuloksena oleva teksti automaattisesti yleisillä ohjelmointikielillä (joka on sitten koottava). Ohjeet syötetään tietokoneeseen visuaalisimmassa muodossa käyttäen menetelmiä, jotka ovat sopivimpia henkilölle, joka ei tunne ohjelmointia.

^ Yleiskatsaus korkean tason ohjelmointikielistä

Fortran

Se on ensimmäinen käännetty kieli 1950 -luvulla.

Ohjelmoijat, jotka kehittivät ohjelmia yksinomaan kokoonpanokielellä, ilmaisivat vakavia epäilyksiä korkean suorituskyvyn korkean tason kielen mahdollisuudesta, joten tärkein kriteeri Fortran-kääntäjien kehittämisessä oli suoritettavan koodin tehokkuus. Vaikka Fortran oli edelläkävijä useissa kriittisissä ohjelmointikonsepteissa, ohjelmien luomisen helppous uhrattiin tehokkaan konekoodin luomisen kyvystä. Tätä kieltä varten on kuitenkin luotu valtava määrä kirjastoja tilastollisista komplekseista satelliittiohjauspaketteihin. Fortrania käytetään edelleen aktiivisesti monissa organisaatioissa. Fortran HPF: stä (High Performance Fortran) on vakioversio rinnakkaisille supertietokoneille, joissa on useita suorittimia.

Cobol (Cobol).

Se on koottu kieli taloudellisille ja yrityssovelluksille, kehitetty 1960 -luvun alussa. Se erottuu suuresta "monisanaisuudestaan" - sen operaattorit näyttävät joskus tavallisilta englanninkielisiltä lauseilta. Cobolissa otettiin käyttöön erittäin tehokkaita työkaluja eri ulkoisille tietovälineille tallennettujen suurten tietomäärien käsittelyyn. Tällä kielellä on luotu paljon sovelluksia, jotka ovat edelleen käytössä.

Algol Käännetty kieli luotu vuonna 1960. Sen oli tarkoitus korvata Fortran, mutta sen monimutkaisemman rakenteen vuoksi sitä ei otettu laajasti käyttöön. Vuonna 1968. Luotiin versio Algol 68: sta, joka on edelleen monien ohjelmointikielien edellä ominaisuuksiltaan, mutta koska sille ei ole tarpeeksi tehokkaita tietokoneita, hyviä kääntäjiä ei voitu luoda ajoissa.

Pascal

70 -luvun lopulla luotu Pascal -kieli muistuttaa monin tavoin Algolia, mutta se tiukentaa useita ohjelman rakennetta koskevia vaatimuksia, ja on olemassa mahdollisuuksia, joiden avulla sitä voidaan käyttää menestyksekkäästi suuria projekteja luotaessa.

Perus

Tätä kieltä varten on sekä kääntäjiä että tulkkeja, ja se on maailman suosituin. Se luotiin 60 -luvulla opetuskieleksi ja on erittäin helppo oppia.

C (C)

Tämä kieli luotiin Bell -laboratoriossa, eikä sitä alun perin pidetty valtavirrana. Sen oli tarkoitus korvata kokoonpanija, jotta se voisi luoda ohjelmia, jotka ovat yhtä tehokkaita ja kompakteja, mutta eivät riippuvaisia ​​tietystä prosessorityypistä. C on monella tapaa samanlainen kuin Pascal ja sillä on lisämahdollisuuksia suoran muistin käsittelyyn (osoittimet). Monet sovellus- ja järjestelmäohjelmat sekä joukko tunnettuja käyttöjärjestelmiä (Unix) kirjoitettiin tällä kielellä 70-luvulla.

C ++ (C ++)

C ++ on C-kielen oliolaajennus, joka kehitettiin vuonna 1980. Se sisältää monia tehokkaita uusia ominaisuuksia, jotka ovat lisänneet dramaattisesti ohjelmoijien tuottavuutta, mutta monimutkaisten ja luotettavien ohjelmien luominen vaatii kehittäjiltä korkeatasoista ammatillista koulutusta.

Java (Java)

Tämän kielen loi Sun 90 -luvun alussa C ++: n perusteella. Se on suunniteltu yksinkertaistamaan C ++-pohjaisten sovellusten kehittämistä sulkemalla pois kaikki matalan tason ominaisuudet. Mutta tämän kielen pääominaisuus ei ole kokoaminen ei konekoodiksi, vaan alustasta riippumattomaksi tavukoodiksi (jokainen komento kestää yhden tavun). Tämä tavukoodi voidaan suorittaa käyttämällä tulkkia, JVM (Java Virtual Machine), jonka versioita luodaan tänään kaikille alustoille.

Erityistä huomiota kiinnitetään tämän kielen kehittämiseen kahteen suuntaan:


  • tuki kaikenlaisille kodinkoneisiin upotetuille mobiililaitteille ja mikrotietokoneille (Jini -tekniikka);

  • alustasta riippumattomien ohjelmistomoduulien luominen, jotka voivat toimia globaalien ja paikallisten verkkojen palvelimilla eri käyttöjärjestelmillä (Java Beans -tekniikka).
Toistaiseksi tämän kielen haittana on heikko suorituskyky.

^ Tietokannan ohjelmointikielet

Tämä kieliryhmä eroaa algoritmisista kielistä ennen kaikkea ratkaistavien tehtävien osalta. Tietokanta on tiedosto (tai tiedostoryhmä), joka on järjestetty tietuejoukko, jolla on yhtenäinen rakenne ja joka on järjestetty yhden mallin mukaan (yleensä taulukkomuodossa). Tietokanta voi koostua useista taulukoista. On kätevää tallentaa tietokantoihin erilaisia ​​tietoja viitekirjoista, arkistokaappeista, kirjanpitopäiväkirjoista jne. Kun työskentelet tietokantojen kanssa, sinun on useimmiten suoritettava seuraavat toimet:

Ensimmäiset tietokannat ilmestyivät hyvin kauan sitten, heti kun tuli tarve käsitellä suuria tietomääriä ja valita tietueryhmiä tiettyjen kriteerien perusteella. Tätä varten luotiin strukturoitu kyselykieli SQL (Structured Query Language). Se perustuu tehokkaaseen matemaattiseen teoriaan ja mahdollistaa tehokkaan tietokannan käsittelyn manipuloimalla yksittäisiä tietueita, mutta tietueryhmiä.

Suurten tietokantojen hallintaa ja niiden tehokasta käsittelyä varten on kehitetty DBMS (Database Management Systems).

Itse asiassa lähes jokaisella DBMS -järjestelmällä on SQL -kielen tukemisen lisäksi oma ainutlaatuinen kieli, joka keskittyy tämän DBMS -järjestelmän ominaisuuksiin eikä ole siirrettävissä muihin järjestelmiin.

Nykyään maailmassa on viisi johtavaa DBMS -valmistajaa:

Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix ja Sybase. Niiden tuotteiden tarkoituksena on tukea tuhansien käyttäjien samanaikaista toimintaa verkossa, ja tietokannat voidaan tallentaa hajautetussa muodossa useille palvelimille.

Henkilökohtaisten tietokoneiden myötä syntyi niin sanottu työpöydän DBMS. DBMS dBase II: ta, jonka kieltä tulkittiin, pidetään PC: n nykyaikaisten tietokantaohjelmointikielten esi -isänä. Sitten sille luotiin kääntäjiä, FoxPro- ja Clipper -DBMS: t ilmestyivät tukemaan tämän kielen murteita. Nykyään samanlaisia ​​mutta yhteensopimattomia versioita dBase -kieliperheestä on toteutettu Microsoftin Visual FoxPro- ja Inprise's Visual dBase -versioissa.

^ Ohjelmointikielet Internetiin

Globaalin verkon aktiivisen kehityksen myötä on luotu monia suosittuja ohjelmointikieliä, jotka on mukautettu erityisesti Internetiin.

Kaikki ne eroavat toisistaan ​​ominaispiirteiltään: kieliä tulkitaan, niiden tulkit jaetaan maksutta ja ohjelmat itse ovat lähdekoodissa. Tällaisia ​​kieliä kutsutaan skriptikieliksi.

HTML. Tunnettu kieli paperityössä. Se on hyvin yksinkertainen ja sisältää peruskomennot tekstin muotoiluun, kuvien lisäämiseen, kirjasimien ja värien asettamiseen, linkkien ja taulukoiden järjestämiseen. Kaikki Web -sivut on kirjoitettu HTML -muodossa tai käyttämällä HTML -laajennuksia.

Perl. 1980 -luvulla Larry Wall kehitti Perlin kielen. Se suunniteltiin keinoksi käsitellä tehokkaasti suuria tekstitiedostoja, luoda tekstiraportteja ja hallita tehtäviä. Perl on paljon tehokkaampi kuin kielet, kuten C. Se esittelee monia yleisesti käytettyjä toimintoja merkkijonojen, matriisien, kaikenlaisten tietojen muuntamistyökalujen, prosessinhallinnan, järjestelmätietojen käsittelyyn jne.

VRML. Vuonna 1994. kieli VRML luotiin virtuaalisten kolmiulotteisten rajapintojen järjestämiseen Internetissä. Sen avulla voit kuvata tekstimuodossa erilaisia ​​kolmiulotteisia kohtauksia, valaistusta ja varjoja, tekstuureja (esinepinnoitteita), kiertää mihin tahansa suuntaan, skaalata, säätää valaistusta jne.

^ Mallinnuskielet

Ohjelmia luotaessa ja tietokantarakenteita muodostettaessa käytetään usein muodollisia esitystapoja - muodollisia merkintöjä, joiden avulla voit visuaalisesti esittää tietokantataulukoita, kenttiä, ohjelmaobjekteja ja niiden välisiä suhteita järjestelmässä, jossa on erityinen editori ja ohjelmien lähdekoodien generaattori luotujen mallien perusteella. Tällaisia ​​järjestelmiä kutsutaan CASE -järjestelmiksi. He käyttävät aktiivisesti IDEF -merkintöjä, ja viime aikoina UML on yleistynyt.

      1. ^

        Nykyaikaiset ohjelmointijärjestelmät

Visuaalisen käyttöliittymän ohjelmoinnin perusteet

Yksi umpikujista tai ohjelmointikriiseistä on viime aikoina liittynyt graafisen käyttöliittymän kehittämiseen. Kaikkien käyttäjille tuttujen ikkunoiden, painikkeiden, valikoiden manuaalinen ohjelmointi, hiiren ja näppäimistön tapahtumien käsittely, mukaan lukien kuvien ja äänen ohjelmissa, vaati yhä enemmän ohjelmoijan aikaa. Joissakin tapauksissa koko tämä palvelu alkoi varata jopa 80-90% ohjelmakoodien määrästä. Lisäksi kaikki tämä työ hukkui usein lähes turhaan, koska vuoden kuluttua graafisen käyttöliittymän yleisesti hyväksytty tyyli muuttui ja kaikki oli aloitettava uudestaan.

Poistuminen tilanteesta osoitettiin kahdella lähestymistavalla.

Ensimmäinen on monien käyttöliittymätoimintojen standardointi, joka mahdollisti esimerkiksi Windowsissa käytettävissä olevien kirjastojen käytön. Tämän seurauksena, kun graafisen käyttöliittymän tyyliä muutettiin (esimerkiksi siirryttäessä Windows 3.x: stä Windows 95: een), sovellukset pystyivät sopeutumaan automaattisesti uuteen järjestelmään ilman uudelleenohjelmointia.

Toinen vallankumouksellinen askel oli visuaalisen ohjelmoinnin syntyminen, joka sai alkunsa Visual Basicista ja ilmeni loistavasti Delphin ja Borlandin C ++ Builderissa.

Visuaalinen ohjelmointi mahdollisti käyttöliittymän suunnittelun supistamisen yksinkertaisiksi ja intuitiivisiksi toimenpiteiksi, joiden avulla on mahdollista tehdä minuutteina tai tunteina se, mitä aiemmin kesti kuukausia.

Esimerkki. Delfissä se näyttää tältä. Työskentelet Delphin integroidussa kehitysympäristössä, joka tarjoaa lomakkeita (joita voi olla useita sovelluksessa), joihin komponentit sopivat. Tämä on yleensä ikkunallinen lomake, vaikka näkymättömiä lomakkeita voi olla. Delphi -kirjastojen komponenttien kuvakkeet siirretään lomakkeelle ja sijoitetaan hiirellä. Yksinkertaisilla manipulaatioilla voit muuttaa näiden komponenttien sijainnin kokoa. Samaan aikaan koko suunnitteluprosessin aikana tulos on näkyvissä - kuva lomakkeesta ja siinä olevista komponenteista. Suunnittelutulokset näkyvät ilman ohjelman kokoamista.

Suurin etu on, että lomakkeen suunnittelun ja komponenttien sijoittamisen aikana Delphi luo automaattisesti ohjelmakoodit, mukaan lukien vastaavat fragmentit, jotka kuvaavat tätä komponenttia. Sitten vastaavissa valintaikkunoissa käyttäjä voi muuttaa komponenttien oletusarvoja ja tarvittaessa kirjoittaa käsittelijöitä joillekin tapahtumille. Itse asiassa suunnittelussa on kyse komponenttien asettamisesta lomakkeelle, joidenkin ominaisuuksien asettamisesta ja tapahtumakäsittelijöiden kirjoittamisesta tarvittaessa.

Osat voivat olla visuaalisia, näkyvissä sovelluksen ollessa käynnissä ja ei-visuaalisia ja suorittaa tiettyjä palvelutoimintoja. Visuaaliset komponentit näkyvät heti näytöllä suunnitteluprosessin aikana samassa muodossa, jossa käyttäjä näkee ne ajon aikana.

Delphin visuaaliset komponenttikirjastot sisältävät monentyyppisiä komponentteja ja niiden nimikkeistö laajenee nopeasti versiosta toiseen. Jo saatavilla oleva riittää melkein minkä tahansa monimutkaisimpien sovellusten rakentamiseen ilman uusien komponenttien luomista. Samaan aikaan jopa kokematon ohjelmoija voi luoda sovelluksia, jotka näyttävät ammattimaisilta.

^ Perusohjelmointijärjestelmät

Nykyään suosituimmat yleisohjelmointikielet ovat: Basic, Pascal, C ++ (C ++), Java.

Jokaista ohjelmointikieltä varten on nykyään monia eri yritysten tuottamia ohjelmointijärjestelmiä, jotka on suunnattu eri PC -malleihin ja käyttöjärjestelmiin.

Seuraavat visuaaliset ympäristöt Windows -ohjelmien nopeaan suunnitteluun ovat suosituimpia:


  • Perus: Microsoft Visual Basic;

  • Pascal: Borland Delphi;

  • C ++: Borland C ++ Bulider;

  • Java: Symantec Cafe.
Palvelin- ja hajautettujen sovellusten kehittämiseen voit käyttää Microsoft Visual C ++ -ohjelmointijärjestelmää, Borland -tuotteita ja lähes mitä tahansa Java -ohjelmointityökalua.
    1. ^

      Ohjelmistojärjestelmien arkkitehtuuri

Vaikka useimmat erilliset sovellukset - toimisto -ohjelmat, kehitysympäristöt, teksti- ja kuvankäsittelyjärjestelmät - toimivat yhdellä tietokoneella, suuret tietojärjestelmät (esimerkiksi yrityksen automaatiojärjestelmä) koostuvat kymmenistä ja sadoista yksittäisistä ohjelmista, jotka ovat vuorovaikutuksessa keskenään verkko, joka toimii eri tietokoneissa. Tällaisissa tapauksissa niiden sanotaan toimivan eri ohjelmistoarkkitehtuureissa.


  1. Erilliset sovellukset. Ne toimivat yhdellä tietokoneella.

  2. Sovellukset. Järjestelmän käyttäjien tietokoneet on yhdistetty verkkoon, ja jokaisesta niistä (asiakkaan luona) käynnistetään kopiot samasta ohjelmasta, jotka käyttävät tietoja palvelimelle, joka tallentaa tiedostoja, jotka ovat samanaikaisesti kaikkien käyttäjien saatavilla (nämä ovat pääsääntöisesti tietokantoja). Palvelimella on parantunut luotettavuus, korkea suorituskyky ja suuri muistikapasiteetti; siihen on asennettu käyttöjärjestelmän erityinen palvelinversio. Kun useat ohjelmat käyttävät samaa tiedostoa samanaikaisesti, esimerkiksi päivittääkseen sen, sen sisällön epäselvä määrittely voi aiheuttaa ongelmia. Siksi jokainen muutos julkiseen tiedostoon allokoidaan tapahtumaan (alkeellinen tietojenkäsittely, jolla on kiinteä alku, loppu (onnistunut tai epäonnistunut suoritus) ja useita muita ominaisuuksia). Tämän arkkitehtuurin erityispiirteenä on, että kaikki laskelmat suoritetaan asiakassivustoilla, mikä edellyttää riittävän tehokkaita tietokoneita (nämä ovat ns. Järjestelmiä, joissa on paksu asiakas - ohjelma, joka suorittaa kaiken palvelimelta vastaanotetun tiedon käsittelyn).

  3. Asiakas-palvelinsovellukset . Tämä arkkitehtuuri on samanlainen kuin edellinen, vain palvelin, joka tarjoaa vain samanaikaisen pääsyn tietoihin, pystyy myös suorittamaan ohjelmia, jotka suorittavat tietyn määrän laskentatoimia (tiedostopalvelimessa arkkitehtuuri, se toteutetaan kokonaan asiakasasennuksissa). Tämän ansiosta on mahdollista lisätä järjestelmän yleistä luotettavuutta, koska palvelin on paljon vakaampi kuin tietokone, ja poistaa tarpeetonta kuormitusta asiakaspaikoista, joissa sitä voidaan käyttää. Niille käynnistetyt sovellukset suorittavat pieniä määriä laskutoimitusta, ja joskus ne näyttävät vain palvelimelta saatuja tietoja, joten niitä kutsutaan ohutasiakkaiksi.

  4. Sovellukset monitasoisessa arkkitehtuurissa. Aiemman arkkitehtuurin haittana on, että palvelimen kuormitus kasvaa dramaattisesti, ja jos se epäonnistuu, koko järjestelmän työ pysähtyy. Siksi järjestelmään lisätään ns. Sovelluspalvelin, jolle kaikki laskennat suoritetaan. Toinen tietokantapalvelin käsittelee käyttäjien pyynnöt, ja kolmas voidaan varustaa erityisellä ohjelmalla - tapahtumavalvonnalla, joka optimoi tapahtumien käsittelyn ja tasapainottaa palvelimien kuormituksen. Useimmissa käytännön tapauksissa kaikki palvelimet on kytketty sarjaan, ja yhden linkin epäonnistuminen, jos se ei pysäytä kaikkea työtä, vähentää ainakin järjestelmän suorituskykyä.

  5. Sovellukset hajautetussa arkkitehtuurissa. Tarkastettujen arkkitehtuurien haittojen välttämiseksi keksittiin erityisiä tekniikoita, joiden avulla voit luoda ohjelman komponenttien muodossa, joita voidaan käyttää millä tahansa verkkoon kytketyllä palvelimella (komponentit on ikään kuin jaettu verkko). Tämän lähestymistavan tärkein etu on, että jos jokin tietokone epäonnistuu, erityiset valvontaohjelmat, jotka valvovat oikeaa toimintaa, käynnistävät väliaikaisesti puuttuvan komponentin välittömästi uudelleen toisessa tietokoneessa. Tällöin koko järjestelmän yleinen luotettavuus nousee erittäin korkeaksi ja laskennallinen kuormitus jaetaan palvelimien kesken optimaalisella tavalla. Pääsy minkä tahansa käyttäjän kanssa kommunikoitavaksi tarkoitetun komponentin ominaisuuksiin suoritetaan mielivaltaiselta asiakaspaikalta. Koska kaikki laskelmat tehdään palvelimilla, on mahdollista luoda erittäin ohuita asiakkaita - ohjelmia, jotka näyttävät vain verkosta vastaanotetut tiedot ja vaativat vain vähän tietokoneresursseja. Tämän ansiosta pääsy komponenttijärjestelmään on mahdollista paitsi PC: ltä myös pieniltä mobiililaitteilta. Komponenttimenetelmän erityistapaus on pääsy palvelinsovelluksiin selaimilta Internetin kautta.
Kolmen komponentin tekniikat ovat nykyään suosituimpia: OMG -konsortion CORBA, Sun -pavut Sunilta, COM + Microsoftilta.

Nämä tekniikat muokkaavat tietoteollisuuden kehitystä tulevina vuosikymmeninä.

Ohjelmointikielet se on muodollinen merkkijärjestelmä, joka on suunniteltu kuvaamaan algoritmeja esiintyjälle sopivassa muodossa.

Ohjelmointikielien luokittelu

Ohjelmoida on yksityiskohtainen ja täydellinen kuvaus algoritmista ohjelmointikielen avulla. Ohjelman toteuttaja on tietokone. Ohjelman suorittamiseksi tietokoneella ohjelman on oltava edustettuna konekoodissa - prosessorin ymmärtämässä numerosarjassa. Ohjelman kirjoittaminen konekoodeihin käsin on melko vaikeaa. Siksi nykyään lähes kaikki ohjelmat luodaan ohjelmointikielillä, jotka syntaksissaan ja semantiikassaan ovat lähellä luonnollista ihmiskieltä. Tämä vähentää ohjelmoinnin monimutkaisuutta. Ohjelmointikielellä kirjoitettu ohjelman teksti on kuitenkin muutettava konekoodiksi. Tämä toiminto suoritetaan automaattisesti erityisellä apuohjelmalla nimeltä kääntäjä. Tulkki kääntää konekoodien kielelle, kukin lähdeohjelman operaattori puolestaan ​​tarkistaa operaattorin kirjoitusten oikeellisuuden ja suorittaa sen välittömästi. Toisin kuin tulkki kääntäjä kääntää koko lähdeohjelman konekielelle.

Esimerkkejä apuohjelmista - tulkit ovat GW Basic, Logo, koulun algoritmikieli, monet tietokannan ohjelmointikielet. Kääntäjät ovat Turbo Pascal, C ++, Delphi.

Ohjelmien kehittämismenetelmällä voidaan erottaa kaksi lähestymistapaa:

    menettelytapojen ohjelmointi on ohjelmointia, jossa ohjelmakäskyjen suorittaminen määräytyy niiden järjestyksen, hyppyohjeiden, silmukan tai kutsujen mukaan;

    olio -ohjelmointi - ohjelmointi, jossa muodostetaan ohjelmaobjekteja, joilla on joukko ominaisuuksia, joilla on joukko menetelmiä ja jotka pystyvät vastaamaan tapahtumiin, jotka tapahtuvat sekä ulkoisessa ympäristössä että itse objektissa (hiiren napsautukset, ajastimen laukaisu, numerorajan ylittäminen jne.) jne.). Näin ollen tietyn ohjelman osan suorittaminen riippuu ohjelmistojärjestelmän tapahtumista.

Objektipohjainen ohjelmointi (OOP) ei sulje pois, vaan sisältää prosessiohjelmointitekniikan.

Tärkeimmät ohjelmointikielet

Yleisimmät ohjelmointikielet ovat: Basic; Pascal; C ++; Java.

Peruskielestä on monia versioita, jotka on toteutettu sekä tulkkina että kääntäjänä. Venäjällä Basicia käytetään perinteisesti lukion tietojenkäsittelytieteen kurssilla. Visuaalinen ohjelmointiympäristö Microsoft Visual Basicia käytetään MS Office -sovellusten ohjelmistotukena.

Pascal -kieli on koottu ja sitä käytetään laajalti yliopistojen ohjelmoinnin opetusympäristönä. RAD -ympäristö, joka perii sen perusominaisuudet, on Borland Delphi -ympäristö.

C ++ -kielen RAD -ympäristö on Borland C ++ Builder. Tätä käännettyä kieltä käytetään usein sellaisten sovellusten kehittämiseen, joissa on välttämätöntä varmistaa ohjelman nopeus ja säästö.

Java-kielen, tulkitun kielen, avulla voit luoda alustasta riippumattomia ohjelmistomoduuleja, jotka voivat toimia tietokoneverkoissa eri käyttöjärjestelmien kanssa. Sen RAD -ympäristö on Symantec Cafe.

Ohjelmointijärjestelmä on järjestelmä uusien ohjelmien kehittämiseksi tietyllä ohjelmointikielellä.

Nykyaikaiset ohjelmointijärjestelmät tarjoavat käyttäjille yleensä tehokkaita ja käteviä ohjelmointityökaluja. . Ne sisältävät:

    kääntäjä tai tulkki;

    integroitu kehitysympäristö;

    työkalut ohjelmatekstien luomiseen ja muokkaamiseen;

    laaja standardiohjelmien kirjastot ja toiminnot;

    virheenkorjausohjelmat eli ohjelmat, jotka auttavat löytämään ja korjaamaan ohjelman virheitä;

    "ystävällinen" käyttäjien vuoropuheluympäristöön;

    usean ikkunan toimintatila;

    tehokkaat grafiikkakirjastot; apuohjelmat työskennellä jonkun kanssa

kirjastot

    sisäänrakennettu kokoonpanija;

    sisäänrakennettu help desk;

    muita erityispiirteitä.

Suositut ohjelmointijärjestelmät - Turbo perus , Quick Basic , Turbo pascal , Turbo C. ... Viime aikoina ohjelmointijärjestelmät ovat keskittyneet luomiseen Windows -sovellukset:

    muovipussi Borland Delphi (Delphi) on loistava seuraaja Borland Pascal -kääntäjäperheelle, joka tarjoaa laadukkaita ja erittäin käyttäjäystävällisiä visuaalisia kehitystyökaluja. Sen erittäin nopean kääntäjän avulla voit ratkaista tehokkaasti ja nopeasti lähes kaikki sovellusohjelmointiongelmat.

    muovipussi Microsoft Visual Basic - kätevä ja suosittu työkalu Windows -ohjelmien luomiseen visuaalisten työkalujen avulla. Sisältää työkaluja luomiseen kaavioita ja esityksiä.

    muovipussi Borland C ++ - yksi yleisimmistä työkaluista DOS- ja Windows -sovellusten kehittämiseen.

Ohjelmointikielet ja -järjestelmät

Konekielen käsite

Konekieli on komentojärjestelmä, jonka tietyn elektronisen tietokonejärjestelmän laitteisto ymmärtää suoraan. Tämän seurauksena koneen kieli määräytyy ainutlaatuisesti prosessorin käskysarjan ja tietokoneen arkkitehtuurin perusteella.

Suorittimen ohjesarja sisältää:

· Aritmeettiset -loogiset komennot - komennot binäärilukujen aritmeettisille operaatioille ja binaaristen vektoreiden loogisille operaatioille;

· Ohjauskomennot - siirtymiskomennot, haarat, toistot ja jotkut muut komennot;

· Tiedonsiirtokomennot - komennot, joiden avulla tietoja vaihdetaan RAM -muistin ja suorittimen välillä;

· Tietojen syöttö -lähtö -komennot - komennot, joiden avulla CPU ja ulkoiset laitteet vaihtavat tietoja.

Jokainen komento sisältää suorittamansa toiminnon koodin ja tiedot niiden tietojen osoitteista, joille tämä toiminto suoritetaan. Lisäksi komento (suoraan - ohjauskomennot ja epäsuorasti - muut komennot) sisältää tietoja seuraavaksi suoritettavan komennon osoitteesta. Siten mikä tahansa RAM -muistissa oleva käskysarja on itse asiassa prosessorin käskyjärjestelmään tallennettu algoritmi - koneohjelma.

Yleisin on nyt tietokonearkkitehtuuri, jossa on yhteinen väylä. Yhteinen väylä on keskeinen tietotie, joka yhdistää ulkoiset laitteet keskusprosessoriin. Se koostuu dataväylästä, osoiteväylästä ja ohjausväylästä. Tietoväylä on tarkoitettu tiedonsiirtoon RAM -muistin ja ulkoisten laitteiden välillä. Osoiteväylä kuljettaa dataosoitteita. Tämä bussi on yksisuuntainen. Ohjausväylä toimii kanavana ohjaussignaalien vaihtoon ulkoisten laitteiden ja keskusprosessorin välillä.

Siten konekieli (prosessorikieli) on joukko ohjeita, joista jokainen kuvaa joitain alkeellisia toimintoja binaarikoodissa esitettyjen tietojen muuttamiseksi. Binäärikoodin yleinen käyttö erilaisten tietojen esittämiseen johtaa siihen, että jopa melko yksinkertaisen ongelman ratkaisuohjelma sisältää satoja koneen ohjeita. Tällaisen ohjelman kirjoittaminen koneen ohjeiden avulla ei ole helppoa edes taitavalle ohjelmoijalle. Todelliset ohjelmat koostuvat kymmenistä ja satoista tuhansista koneen ohjeista. Siksi minkä tahansa ohjelman suunnittelutekniikan tulisi perustua ihmisen ajattelulle ominaisiin tekniikoihin ja toimia käsitteillä, jotka ovat tuttuja henkilölle aihealueelta, johon tehtävä kuuluu.

Toisin sanoen ohjelmoijan (algoritmisuunnittelijan) on kyettävä muotoilemaan algoritminsa tuttujen käsitteiden kielellä; sitten erityisohjelman on ilmaistava nämä käsitteet työstökoneiden avulla kääntämällä (kääntämällä) algoritmin teksti koneen kielelle.

Tämä tarve johti korkean tason ohjelmointikielten syntymiseen kielinä tietokoneella suoritettavien algoritmien tallentamiseen.

Konekeskeiset kielet

Korkean tason kielten edeltäjiä ovat niin sanotut konekeskeiset kielet tai autokoodikielet. Yksi konekäyttöisten kielten näkyvimmistä edustajista on Assembler. Assembler on hyvin lähellä koneen kieltä, suurin osa sen ohjeista on tarkkoja symbolisia esityksiä koneen ohjeista. Etuna on, että prosessorin ohjeiden numeerisia koodeja ei enää tarvitse muistaa, riittää, kun tiedetään niiden symbolinen esitys. Lisäksi ensimmäistä kertaa konekeskeisillä kielillä muuttujan käsite esiintyy nimettynä muistialueena tietojen tallentamiseen ja samalla tietotyypin käsite. Konekielisissä ohjelmissa on mahdollista käyttää sekä numeerista että tekstitietoa ihmisille tutussa muodossa.

Huolimatta konepohjaisten kielten selkeistä eduista puhtaasti konekieliin verrattuna, ohjelmien kirjoittaminen näillä kielillä on edelleen täynnä merkittäviä vaikeuksia. Ohjelmat ovat erittäin hankalia ja vaikeasti luettavia.

Korkean tason ohjelmointikielet

Korkean tason ohjelmointikielet toimivat viestintävälineenä ohjelmoijan ja koneen välillä sekä ohjelmoijien välillä. Tämä seikka asettaa kielelle monia velvoitteita:

Kielen tulisi olla lähellä niitä luonnollisia kieliä, jotka tarjoavat tietyn ihmisen toiminnan aihealueen. (Yrityssovelluksiin keskittyvän kielen tulisi sisältää tämän tyyppisessä toiminnassa käytetyt käsitteet: asiakirja, lasku, tietokanta jne.).

Kaikki kielitoiminnot on virallistettava siinä määrin, että ne voidaan toteuttaa koneohjelmina.

Ohjelmointikieli on enemmän kuin keino kuvata algoritmeja: se sisältää käsitejärjestelmän, jonka perusteella henkilö voi ajatella ongelmiaan, ja merkinnän, jolla hän voi ilmaista ajatuksiaan ongelman ratkaisemisesta.

Lähetysohjelmien mallit. Kääntäjät

Yleensä tietokoneita ei ole suunniteltu ymmärtämään korkean tason ohjelmointikieliä. Laitteisto tunnistaa ja suorittaa vain konekielen, jonka ohjelma on vain binääriluku.

Ohjelmointikielten syntyminen liittyi tietoisuuteen siitä, että "melkein" luonnollisella (algoritmisella) kielellä kirjoitetun algoritmin kääntäminen konekielelle voidaan automatisoida ja siten uskoa koneen harteille. Tässä on tärkeää erottaa kieli ja sen toteutus. Kieli itsessään on merkintäjärjestelmä, jota säätelevät säännöt, jotka määrittelevät sen sanaston ja syntaksin. Kielten toteutus on ohjelma, joka muuntaa tämän merkinnän koneen käskyjen sarjaksi kielellä määriteltyjen semanttisten sääntöjen mukaisesti.

Kielen toteuttamiseen on kaksi pääasiallista tapaa: kääntäjät ja tulkit. Kääntäjät kääntävät koko ohjelmointikielellä kirjoitetun tekstin konekoodiksi yhdellä jatkuvalla prosessilla. Tämä luo täydellisen konekoodiohjelman, joka voidaan sitten suorittaa ilman kääntäjää.

Tulkki tunnistaa ja suorittaa ohjelman yhden lauseen (operaattorin) joka hetki ja muuntaa käsiteltävän lauseen koneohjelmaksi matkan varrella. Ero kääntäjän ja tulkin välillä on samanlainen kuin ero suullisen puheen ja tekstin kääntämisen välillä.

Periaatteessa mitä tahansa kieltä voidaan sekä koota että tulkita, mutta useimmissa tapauksissa jokaisella kielellä on oma ensisijainen toteutustapansa. Ilmeisesti tämä suosio on enemmän kuin kunnianosoitus perinteelle. Valinta määräytyy kielen mukaan. Fortran, Pascal, Modula-2 kootaan enimmäkseen. Kielet, kuten logo, Fort, tulkitaan lähes aina. BASIC ja Lisp ovat laajalti käytössä molemmissa muodoissa.

Kääntäjiä on kahta päätyyppiä lähtötietojen tyypin mukaan:

· Lopullisen suoritettavan koodin kokoaminen;

· Tulkitun koodin kokoaminen, jonka suorittamiseen tarvitaan lisäohjelmistoa.

Lopullinen suoritettava koodi on EXE -tiedostoina, DLL -kirjastoina, COM -osina toteutetut sovellukset. Tulkittu koodi on JVM -virtuaalikoneen suorittamien JAVA -ohjelmien tavukoodi.

Kääntäjän luoma objektikoodi on tietoalue ja koneen käskyalue, jolla on osoitteita, joista linkkieditori (joskus kutsutaan lataajaksi) "neuvottelee". Linkkieditori sijoittaa kaikki erikseen kootut objektimoduulit ja staattisesti linkitetyt kirjastot yhteen osoitetilaan.

Seuraavassa kutsumme ohjelman suoritettavaa muotoa koodiksi, joka on saatu lähdeohjelman kääntämisen tuloksena.

Käännös (kokoaminen)

Korkean tason ohjelmointikielellä kirjoitettua ohjelmaa kutsutaan lähdeohjelmaksi, ja kutakin itsenäistä ohjelmayksikköä, joka muodostaa tietyn ohjelman, kutsutaan ohjelmamoduuliksi. Muuttaakseen lähdeohjelman suoritettavaan muotoonsa (suoritettava tiedosto) kääntäjä suorittaa tietyn sarjan toimintoja. Tämä järjestys riippuu sekä ohjelmointikielestä että kääntäjän erityisestä toteutuksesta. Käännöksen aikana on tärkeää paitsi koota ohjelma, myös saada riittävän tehokas koodi samanaikaisesti.

Käännösprosessissa lähdeohjelma analysoidaan ja sitten annetun ohjelman suoritettava muoto syntetisoidaan. Kääntäjät jaetaan kääntäjän suorittaman lähdeohjelman näyttökertojen määrästä riippuen kertakäyttöisiin, kaksikäyttöisiin ja kääntäjiin.

Yksikierroksisen kääntäjän etuja ovat suuri kääntämisnopeus, ja haittoja ovat pääsääntöisesti ei tehokkaimman koodin hankkiminen.

Kaksikierroksisia kääntäjiä käytetään laajalti. Niiden avulla ensimmäinen siirto voi analysoida ohjelman ja rakentaa tietotaulukot, joita käytetään toisessa vaiheessa objektikoodin luomiseen.

Kuvassa on esitetty lähdeohjelman kääntämisen tärkeimmät vaiheet.

Ohjelman analysointivaihe koostuu:

· Lexical analyysi;

· Syntaktinen analyysi;

· Semanttinen analyysi.

Lähdeohjelmaa analysoitaessa kääntäjä skannaa peräkkäin ohjelman tekstin merkkijonoina ja jäsentää ohjelmarakenteen.

Leksisen analyysin vaiheessa suoritetaan ohjelman pääkomponenttien - lekseemien - valinta. Tunnukset ovat avainsanoja, tunnisteita, toimintomerkkejä, kommentteja, välilyöntejä ja erottimia. Leksinen analysaattori ei vain poimii tunnuksia, vaan myös määrittää kunkin merkin tyypin. Samaan aikaan leksisen analyysin vaiheessa kootaan symbolitaulukko, jossa jokainen tunniste liitetään omaan osoitteeseen. Tämä mahdollistaa lisäanalyysin sen osoitteen käyttämiseksi symbolitaulukossa tietyn arvon (merkkijono) sijasta.

Tunnusten korostaminen on melko työlästä ja vaatii monimutkaisten asiayhteyteen liittyvien algoritmien käyttöä.

Jäsennysvaiheessa vastaanotetut tunnisteet jäsennellään semanttisesti ymmärrettävien syntaktisten yksiköiden saamiseksi, joita semanttinen analysaattori sitten käsittelee. Syntaktiset yksiköt ovat siis lausekkeita, julistusta, ohjelmointikielen operaattoria, funktion kutsua.

Semanttisen analyysin vaiheessa syntaktisia yksiköitä käsitellään ja välikoodi luodaan. Optimointivaiheen läsnäolosta tai poissaolosta riippuen semanttisen analyysin tulos voi olla edelleen optimoitu välikoodi tai valmis objektimoduuli.

Yleisimpiä semanttisen analysaattorin ratkaisemia tehtäviä ovat:

· Kääntämisajan virheiden havaitseminen;

· Leksikaalisen analyysin vaiheessa luodun symbolitaulukon täyttäminen tietyillä arvoilla, jotka määrittävät lisätietoja jokaisesta taulukon elementistä;

· Makrojen korvaaminen niiden määritelmillä;

· Käännösaikaisten direktiivien täytäntöönpano.

Makro on jokin ennalta määritetty koodi, joka lisätään ohjelmaan kokoamisvaiheessa kaikissa paikoissa, joissa tämän makron kutsu on osoitettu.

Ohjelman synteesivaiheessa suoritetaan seuraava:

· Koodin luominen;

· Linkkien muokkaaminen.

Koodinmuodostusprosessi koostuu välikoodin (tai optimoidun koodin) muuntamisesta objektikoodiksi. Tässä tapauksessa ohjelmointikielestä riippuen tuloksena oleva objektikoodi voidaan esittää suoritettavassa muodossa tai objektimoduulina, jota linkkijärjestelmä käsittelee edelleen.

Koodinmuodostusprosessi on siis olennainen osa ohjelman synteesivaihetta, ja linkkerin suorittamisen tarve riippuu tietystä ohjelmointikielestä. On huomattava, että käytännössä termiä "koodin luominen" käytetään usein kaikkiin ohjelman synteesivaiheen toimintoihin, jotka johtavat ohjelman suoritettavaan muotoon.

Linkkieditori vastaa erillisissä objektimoduuleissa olevien koodifragmenttien osoitteita: määritetään kutsutun ulkoisen funktion osoitteet, ulkoisten muuttujien osoitteet, toimintojen osoitteet ja kunkin moduulin menetelmät. Osoitteiden muokkaamiseen linkkieditori käyttää käännösvaiheessa luotuja erityisiä lataustaulukoita. Kun linkki on käsitellyt objektimoduulit, suoritettava ohjelmalomake luodaan.

4.1. Ohjelmointijärjestelmät.

Minkä tahansa ohjelman päätavoite - kuvaus keskusprosessorin komentojen järjestyksestä, jonka on suoritettava se. Nämä komennot on ilmaistava konekoodina, ts. keskusprosessorin ymmärtämällä kielellä. Siksi henkilön on erittäin vaikea kirjoittaa ohjelmia tällä kielellä Ohjelmien luomiseen käytetään seuraavaa lähestymistapaa:

Ohjelmoija kirjoittaa tekstiä kielellä, jota hän ymmärtää ja osaa. Sitten se kääntää sen konekielelle ja muuttaa sen prosessorille ja käyttöjärjestelmälle sopivaksi muotoksi.

Tätä tarkoitusta varten kehitetään algoritmeja kuvaavia erityisiä kieliä, joita kutsutaan algoritmikielet tai ohjelmointikielet .

(05.12.2012)

Niillä (algoritmikielellä) on useita ominaisuuksia:

1. Erikoistuminen - työkalu, jonka kieli tarjoaa tietyntyyppisten aihealueiden tehtävien kuvaamiseen. Esimerkiksi: jotkut kielet on tarkoitettu pääasiassa numeerisiin laskelmiin (Pascal), toiset tekstitietojen käsittelyyn (LISP) ja toiset järjestelmäohjelmien kirjoittamiseen (C). Pohjimmiltaan yleisimpien kielten avulla voit kuvata eri ongelmien ratkaisua (siksi niitä kutsutaan yleismaailmallisiksi), mutta ne ovat kätevintä ratkaisemaan ne ongelmat, joita varten ne on suunniteltu.

2. Kyky kirjoittaa helposti luettavaa tekstiä selkeällä rakenteella. Tätä lähestymistapaa ohjelmoinnissa kutsutaan modulaarinen (rakenteellinen) ... Hän olettaa erillisten ohjelmistomoduulien kirjoittaminen ja niiden automaattinen kokoonpano yhdeksi ohjelmaksi. Tässä tapauksessa ohjelmoija kirjoittaa ohjelmamoduulin nimeltä pääohjelma (pää) ... Siinä hän kuvaa jäljellä olevien moduulien, joita kutsutaan, suoritusjärjestyksen ohjelmia tai toimintoja .

Ohjelmointikielien erityispiirteistä johtuen niitä on ohjelman suorittamisen neljä tärkeää vaihetta :

1. Lähettää - ohjelmamoduulien tekstin kääntäminen algoritmikieleltä konekielelle.

2. Käännöksen jälkeen saatujen ohjelmamoduulien kokoaminen yhdeksi ohjelmaksi.

3. Ohjelman virheenkorjaus - prosessi virheiden löytämiseksi ja poistamiseksi ohjelmatekstistä.

4. Ohjelman toteutus.

Näiden vaiheiden aikaansaamiseksi ohjelmointijärjestelmät on tarkoitettu.

Ne sisältävät seuraavat komponentit:

1. Erikoistunut tekstieditori. Avustaa henkilöä ohjelmamoduulien tekstin kirjoittamisessa.

2. Kääntäjät. Kääntäjä Onko kääntäjä kielestä, jolla ohjelmamoduulien tekstit kirjoitetaan, koneen sisäiselle kielelle. Kahdenlaisia ​​kääntäjiä:

  • Tulkit. Tulkki kääntää ohjelmatekstin rivikohtaisesti koneen kielelle ja suorittaa tämän ohjelman kaikki komennot samanaikaisesti. Tulkki automatisoi kaikki ohjelman käynnistyksen vaiheet suoritettavaksi.
  • Kääntäjät Kääntäjä kääntää ohjelmamoduulin tekstin konekielelle suorittamatta sitä. Samalla ohjelmoijan tekstissä tekemät syntaksivirheet paljastuvat. Kääntäjän työn tuloksena luodaan objektimoduuli, joka ei ole vielä valmis suoritettavaksi.

3. Linkkien editori. Linkkieditori automatisoituu liittyvien mutta erikseen kirjoitettujen ja käännettyjen ohjelmistomoduulien kokoamisprosessi. Työnsä aikana hän paljastaa virheet moduulien välisissä virheellisissä linkeissä ( esimerkiksi, olemattoman moduulin linkin läsnäolo tekstissä) tai niiden puuttuminen. Sitä paitsi, hän lisää käyttöjärjestelmän tarvitsemat huoltotiedot tämän ohjelman suorituksen myöhempää valvontaa varten. Ohjelman saama tiedosto voidaan suorittaa käyttöjärjestelmän valvonnassa ilman ohjelmointijärjestelmää, joten sitä kutsutaan suoritettava (käynnistettävä) tiedosto .


4. Virheen korjaaja. Virheen korjaaja tekee auttaa löytämään erilaisia ​​virheitä ohjelmassa sen suorittamisen aikana. Näitä ovat esimerkiksi: loogiset virheet (yritys jakaa nollalla) sekä virheellisiin syöttötietoihin liittyvät virheet.