Ohjelmointi on tietokoneohjelmien luontiprosessi .
Yhden ohjelmointikielten perustajan Niklaus Wirthin sanoin "Ohjelmat = algoritmit + tietorakenteet " [1] [2] .
Ohjelmointi perustuu ohjelmointikielten käyttöön , joilla ohjelmien lähdetekstit kirjoitetaan.
205 eaa _ e. [3] (150 eKr. [4] ) - Antikythera-mekanismi antiikin Kreikasta oli laskin , joka käytti erikokoisia ja -kokoonpanoisia vaihteita , mikä sai sen toimimaan [5] metonisen kierron seuraamiseksi , jota käytettiin edelleen kuun aurinkokalentereissa [ 6] .
1206 - Al- Jazari rakensi ohjelmoitavan humanoidiautomaatin . Eräs näihin laitteisiin liittyvä järjestelmä käytti tiettyihin paikkoihin puulaatikkoon sijoitettuja puristimia ja nokkeja , jotka ohjasivat peräkkäin vipuja , jotka puolestaan ohjasivat lyömäsoittimia. .
1804 - Joseph Marie Jacquardin rakennuttama Jacquard - kutomakone , joka mullisti kudontateollisuuden mahdollistamalla kuvioiden ohjelmoinnin kankaille reikäkorteilla . Sitä pidetään joskus ensimmäisenä ohjelmoitavana laitteena . .
19. heinäkuuta 1843 - Charles Babbage suunnitteli (mutta ei pystynyt rakentamaan) Analytical Enginen , ensimmäisen ohjelmoitavan laskentalaitteen. .
19. heinäkuuta 1843 - Kreivitär Ada Augusta Lovelace , englantilaisen runoilijan George Byronin tytär , kirjoitti ensimmäisen Analytical Engine -ohjelman ihmiskunnan historiassa. Tämä ohjelma ratkaisi Bernoullin yhtälön, joka ilmaisee liikkuvan nesteen energian säilymisen lain. Ensimmäisessä ja ainoassa tieteellisessä työssään Ada Lovelace käsitteli monia kysymyksiä. Useat hänen ilmaisemat yleiset säännökset ( työmuistisolujen säästämisen periaate , toistuvien kaavojen yhdistäminen syklisiin laskentaprosesseihin) ovat säilyttäneet perustavanlaatuisen merkityksensä nykyaikaisessa ohjelmoinnissa .
Babbagen materiaaleissa ja Lovelacen kommenteissa hahmotellaan vasta 1950 - luvulla käyttöön otettuja käsitteitä aliohjelma ja aliohjelmien kirjasto, käskyjen muokkaus ja indeksirekisteri . . Mitään Ada Lovelacen kirjoittamia ohjelmia ei kuitenkaan koskaan julkaistu. .
Ensimmäinen laajalti tunnettu ja menestynyt korkean tason ohjelmointikieli oli Fortran , jonka John Backusin johtama IBM -tutkijaryhmä kehitti vuosina 1954–1957 . Fortranin menestys johti tiedekomitean muodostamiseen kehittämään " universaalin " tietokonekielen. Erikseen MIT :n John McCarthy kehitti Lisp-ohjelmointikielen ( perustuu lambda- laskentaan ), ensimmäisen kielen, joka ilmestyi akateemiseen ja menestyi. Näiden ensimmäisten ponnistelujen menestyksen myötä ohjelmointikielistä tuli aktiivinen tutkimusaihe 1960-luvulla ja sen jälkeen.
Ensimmäiset ohjelmointikirjat NeuvostoliitossaEnsimmäinen Neuvostoliiton avoin kirja ohjelmoinnista, elektronisista tietokoneista ja niiden erilaisista sovelluksista oli Anatoli Ivanovich Kitovin [7] [8] monografia " Electronic Digital Machines " , joka julkaistiin vuoden 1956 alussa . Tämän kirjan viimeinen kolmannes on omistettu "Tietokoneiden ei-aritmeettiselle käytölle" - tietokoneiden käyttöön tuotantoprosessien hallintaan, taloudellisten ongelmien ratkaisemiseen , tekoälyyn , konekäännökseen jne. Kirja on käännetty useille vieraille kielille ja julkaistu Yhdysvalloissa , Kiinassa , Puolassa , Tšekkoslovakiassa ja muissa maissa. Neuvostoliiton tiedeakatemian presidentti G. I. Marchuk kirjoitti tästä kirjasta: "A. I. Kitovin kirja "Elektroniset digitaaliset koneet", joka julkaistiin vuonna 1956, teki itse asiassa vallankumouksen monien tutkijoiden mielissä. Erinomainen moderni tiedemies V. M. Glushkov totesi: "A. I. Kitov on tunnustettu kybernetiikan pioneeri , joka loi perustan kansalliselle ohjelmointikoululle ja tietokoneiden käytölle sotilaallisten ja kansantaloudellisten ongelmien ratkaisemisessa. Minä itse, kuten kymmenet tuhannet muutkin asiantuntijat, sain alustavat tietokonetietoni hänen kirjastaan "Electronic Digital Machines" - ensimmäisestä kotimaisesta tietokoneita ja ohjelmointia käsittelevästä kirjasta. Michiganin yliopiston professori John Carr (John Carr, USA) kirjoitti monografiassa " Lectures on Programming " ( 1958 , USA), että analysoituaan noin 150 maailmassa tuolloin julkaistua kirjaa tarkastelusta aiheesta, kysyi sekä manuaalista että automaattista ohjelmointia käsitellään parhaiten Anatoli Kitovin kirjassa.
Kuusi kuukautta myöhemmin, samassa 1956, julkaistiin A. I. Kitovin (A. I. Kitov, N. A. Krinitsky ja P. N. Komolov ) toimituksella kirja " Ohjelmointielementit " (elektroniikkatietokoneille). Tästä lähes kolmesataasivuisesta kirjasta tuli toinen julkinen tietokonemonografia Neuvostoliitossa. Tämän kirjan lopuksi julistetaan: "Näiden koneiden (tietokoneiden) laaja käyttö nostaa kaikenlaisen tuotannon maassamme uudelle ennennäkemättömälle korkealle tasolle, lisää dramaattisesti kansamme aineellista hyvinvointia ja merkittävästi vahvistaa isänmaamme puolustuskykyä." Nämä kaksi kirjaa kattoivat valtavan pulaa tietokoneita ja ohjelmointia koskevasta kirjallisuudesta, joka oli tuolloin Neuvostoliitossa.
Vuonna 1959 julkaistu kirja Electronic Digital Machines and Programming (Kitova A.I. ja Krinitsky N.A.) oli ensimmäinen virallinen tietokoneita ja ohjelmointia käsittelevä oppikirja Neuvostoliitossa, jonka Neuvostoliiton opetusministeriö on hyväksynyt opetukseen yliopistoissa ja yliopistoissa . Neuvostoliiton tiedeakatemian presidentti G. I. Marchuk kirjoitti tästä kirjasta: "Vuonna 1959 ilmestyi toinen A. I. Kitovin perusteos, joka on kirjoitettu yhdessä N. A. Krinitskyn kanssa - "Elektroniset digitaaliset koneet ja ohjelmointi". Se oli itse asiassa tietojenkäsittelytieteen tietosanakirja . Tämän upean kirjan avulla monet yliopistojen ja maan yliopistojen opiskelijoiden sukupolvet saivat peruskoulutuksen ja heistä tuli ensiluokkaisia tiedemiehiä monilla tiedon aloilla. A. I. Kitovin kirjoja, jotka on kirjoitettu maassamme tietokoneiden aikakauden alussa, ei pidä unohtaa. Tämä kirja julkaistiin Romaniassa , Unkarissa , Saksan demokraattisessa tasavallassa ja useissa muissa maissa. Toinen stereotyyppinen painos Electronic Digital Machines and Programming -julkaisusta ilmestyi vuonna 1961 . Ulkomaisen ja kahden Neuvostoliiton julkaisun yhteislevikki oli yli 130 000 kappaletta. Tästä oppikirja-tietosanakirjasta muistelmissaan Moskovan sähkötekniikan instituutin tietokonetekniikan osaston veteraani (maan ensimmäinen tietokoneosasto), teknisten tieteiden tohtori, professori A.K. N. A. Krinitsky "Elektroniset digitaaliset koneet ja ohjelmointi" ( 1959) oli tuolloin maailman paras. .
Suurin osa ohjelmoijien työstä liittyy lähdekoodin kirjoittamiseen , ohjelmien testaamiseen ja virheenkorjaukseen jollakin ohjelmointikielellä . Ohjelmien lähdetekstit ja suoritettavat tiedostot ovat tekijänoikeuden alaisia ja ovat niiden tekijöiden ja tekijänoikeuksien haltijoiden immateriaaliomaisuutta .
Eri ohjelmointikielet tukevat erilaisia ohjelmointityylejä ( ohjelmointiparadigmoja ). Oikean ohjelmointikielen valitseminen joihinkin algoritmin osiin mahdollistaa ohjelman kirjoittamisajan lyhentämisen ja algoritmin kuvauksen tehokkaan ratkaisun. Eri kielet edellyttävät ohjelmoijalta erilaista huomiota yksityiskohtiin algoritmia toteutettaessa, mikä usein johtaa kompromissiin yksinkertaisuuden ja suorituskyvyn välillä (tai " ohjelmoijan ajan" ja " käyttäjäajan" välillä ).
Ainoa tietokoneen suoraan suorittama kieli on konekieli (kutsutaan myös konekoodiksi ja konekäskykieleksi ). Aluksi kaikki ohjelmat kirjoitettiin konekoodilla, mutta nyt sitä ei käytännössä enää tehdä. Sen sijaan ohjelmoijat kirjoittavat lähdekoodin tietyllä ohjelmointikielellä ja kääntävät sen sitten yhdessä tai useammassa vaiheessa konekoodiksi, joka on valmis suoritettavaksi kohdeprosessorilla , tai väliesitykseen , joka voidaan suorittaa erityisellä tulkki - virtuaalikone . Mutta tämä koskee vain korkean tason kieliä . Jos konekäskyjen ja yksittäisten muistisolujen tasolla vaaditaan järjestelmän täydellistä matalan tason hallintaa, kirjoitetaan ohjelmat assembly-kielellä , joiden muistokäskyt muunnetaan yksitellen kohteen vastaaviksi konekielisiksi käskyiksi. tietokoneen prosessori (tästä syystä yksinkertaisimmat kääntäjät hankkivat kääntäjät kokoonpanokielistä algoritmisesti) .
Jotkut kielet luovat tulkittua "virtuaalikoneen" binaarikoodia, jota kutsutaan myös tavukoodiksi , konekoodin sijaan . Tätä lähestymistapaa käytetään Forthissa , joissakin Lisp- , Java- , Perl- ja Python -toteutuksissa .NET Frameworkin kielille .
Ohjelmointiympäristön tekstieditorissa voi olla tiettyjä toimintoja, kuten nimien indeksointi , dokumentaation näyttö (esim . Doxygen ), syntaksin korostus , visuaalisen käyttöliittymän luontityökalut . Ohjelmoija kirjoittaa ja muokkaa tekstieditorin avulla luotavan ohjelman tekstiä, jota kutsutaan lähdekoodiksi . Ohjelmointikieli määrittelee lähdekoodin syntaksin ja alkusemantiikan .
Ohjelmointiprosessissa käytetään tällä hetkellä laajalti integroituja kehitysympäristöjä [9] [10] , joihin yleensä kuuluvat:
![]() | ||||
---|---|---|---|---|
|
Informatiikan pääsuunnat | |
---|---|
Matemaattiset perusteet | |
Algoritmien teoria | |
Algoritmit , tietorakenteet | |
Ohjelmointikielet , kääntäjät | |
Rinnakkaisuus ja rinnakkaislaskenta , hajautetut järjestelmät | |
Ohjelmistotekniikka _ | |
Järjestelmäarkkitehtuuri | |
Tietoliikenne , verkot | |
Tietokanta | |
Tekoäly |
|
Tietokonegrafiikka | |
Ihmisen ja tietokoneen välinen vuorovaikutus |
|
tieteellinen laskeminen | |
Huomautus: Tietojenkäsittelytiede voidaan jakaa myös eri aiheisiin tai haaroihin ACM Computing Classification Systemin mukaan . |
Ohjelmointikielet | |
---|---|
|
Ohjelmistokehitys | |
---|---|
Prosessi | |
Korkean tason käsitteet | |
Ohjeet |
|
Kehittämismenetelmät _ | |
Mallit |
|
Merkittäviä lukuja |
|