Ohjelmakoodit c. Mikä on ohjelmakoodi, sovellus, virheet

Jotta ohjelma voisi suorittaa sille määrätyt toiminnot, esimerkiksi laskea, näyttää tuloksen, vastata käyttäjän toimiin, esimerkiksi painaa painikkeita, valita rivit luettelosta, on välttämätöntä ohjelmakoodi.

Ohjelmakoodi on joukko ohjelmointikielen sanoja ja symboleja.

Aakkoset on täydellinen sarja kirjaimia, numeroita ja symboleja, joita käytetään kielessä osoittamaan tietoja ja niihin liittyviä toimintoja.

Visual Basic -kielen aakkoset sisältävät seuraavan merkistön:

Latinalaisen aakkoston isot (A - Z) ja pienet (a - z) kirjaimet;

Numerot 0-9;

Aritmeettisten operaatioiden merkit (nousevassa tärkeysjärjestyksessä): +, -, *, /, |, ^;

Relaatiooperaatiomerkit: =,<, >.

Välimerkit ja erottimet: ,  . : ; ();

Kielten aakkoset sisältävät myös varattu sanoja, joita ei voi käyttää nimet muuttujia tai menettelyjä. Esimerkkejä varatuista sanoista: Dim, Sub, Integer jne. Oletusarvoisesti avainsanan korostus Visual Basic Code Edit -ikkunassa käyttää sinistä fonttia.

Sanat ja symbolit on kirjoitettava tiukasti kielen sääntöjen mukaisesti, ilman kirjoitus- ja välimerkkivirheitä. Se on tarkka kirjoitusasu, jonka avulla tietokone voi yksiselitteisesti ymmärtää ja suorittaa ohjelman.

Koodi-ikkuna

Ohjelmakoodi kirjoitetaan koodiikkunaan. Jokaisessa lomakkeessa on tällainen ikkuna.

Avaa koodiikkuna:

1 tapa -ikkunassa Project Explorer napsauta hiiren kakkospainikkeella haluamaasi lomaketta ja valitse näkyviin tulevasta valikosta Näytä koodi.

Huomautus: koodiikkuna voi olla liitetty lomakkeeseen tai ei. Kutsutaan erillinen koodiikkuna Moduuli. Project Explorer -ikkunan moduulit on ryhmitelty ryhmään Moduulit. Jos haluat avata ikkunan moduulikoodilla, sinun on oltava ikkunassa Project Explorer kaksoisnapsauta moduulin nimeä.

2 tapa - kaksoisnapsauta lomakkeen ohjausobjektia tai itse lomaketta lomakeikkunassa.

Huomautus: tämä ei vain avaa koodiikkunaa, vaan myös luo tapahtumaproseduurin (katso alla).

Koodiikkunan rakenne:

Riisi. 7. Ohjelmakoodi-ikkuna.

    Luettelo säätimistä

    Ohjaa tapahtumaluetteloa

    Menettely (koodi)

Menettelyt

Koska lamppu syttyy, kun jääkaappi avataan ja vesi valuu ulos, kun hana avataan, voidaan sanoa, että jääkaapin auki -tapahtuman sattuessa suoritetaan yksi toimenpide ja hanan auki -tapahtuma kutsuu toista toimenpidettä. Vastaavasti ohjelmakoodi koostuu erillisistä toimenpiteistä, joista jokainen suorittaa omat erityistoimensa, esimerkiksi yksi toimenpide sytyttää lampun, toinen sytyttää (pumppaa) vettä.

Visual Basic - prosessiohjelmointikieli. Tämä tarkoittaa, että siihen voidaan luoda koodilohkoja, joihin voidaan sitten viitata nimellä. Kun koodilohkolle on annettu nimi, se voi olla olla nimeltään ja valmis. Se on kuin ohjelma ohjelman sisällä. Pieniä ohjelmia, jotka "elävät" suurissa ohjelmissa, kutsutaan toimintoja, jos ne palauttavat jonkin verran arvoa ja rutiinit, jos ne eivät palauta arvoja.

Aliohjelmat ja toiminnot tekevät ohjelmointiprosessista helpompaa ja nopeampaa sekä luodun koodin luotettavamman. Omien aliohjelmien ja toimintojen luominen on ensimmäinen askel kehitykseen kapseloituna ja uudelleenkäytettävä koodi. Kapselointi on ymmärrettävä objektin ominaisuuksien ja menetelmien toteutuksen piilottamiseksi sen ulkoisen rajapinnan taakse.

Menettely (alirutiini) on erillinen ohjelmakoodi, jonka avulla yleensä ratkaistaan ​​pieni tehtävä, se on loogisesti rakennettu, pieni ohjelmalohko, johon koko ohjelma on jaettu.

Jos proseduuri voidaan suorittaa vain tietyn ohjelmalohkon sisällä (esimerkiksi vain tässä muodossa), eikä sitä voida kutsua toisesta ohjelmalohkosta, niin tällainen toiminto on paikallinen. Paikallinen menettely määritellään käyttämällä Private Sub -avainsanaa.

Jos proseduuria voidaan kutsua muista ohjelmalohkoista (esimerkiksi toisesta lomakkeesta), niin tällainen proseduuri on globaali. Yleinen proseduuri määritetään käyttämällä Public Sub -avainsanaa.

Oletusarvoisesti tämä on yleinen toimenpide, jos avainsanaa ei ole ennen ali-avainsanaa.

Menettelyt ovat:

    Tapahtumamenettelyt. Suoritetaan, kun tapahtuma esiintyy jossain ohjausobjektissa (tai muodossa). Tapahtumaproseduuri liittyy aina johonkin objektiin. Objektin tapahtumaproseduurin kutsumiseksi riittää kaksoisnapsauttamalla tätä objektia.

    Mielivaltaiset menettelyt. Se ei liity tapahtumiin, ja se voidaan kutsua mistä tahansa muusta menettelystä ja suorittaa milloin tahansa. Jos sama ohjelmalause esiintyy ohjelmassa kaikissa muodoissa, niin se voidaan kirjoittaa vain kerran ja yhteen paikkaan, globaalin yhteisohjelman muodossa. Yhteisen ohjelman käynnistäminen ei liity objektiin ja tapahtumaan, vaan tapahtuu, kun siihen päästään muista ohjelmalohkoista. Yleisen menettelyn kutsuminen samasta lomakkeesta: ProcedureName (parametriluettelo). Yleisen menettelyn kutsuminen toisesta lomakkeesta: ESINE. ProcedureName (parametriluettelo). Yleinen menettely voi olla sekä paikallinen yksityinen että globaali julkinen

Menettelyn rakenne

Menettely koostuu seuraavista osista:

    Menettelyn otsikko - merkitsee toimenpiteen alkua, sen tyyppiä, tarkoitusta (tapahtumaa).

Esimerkki toimenpiteen otsikosta, joka suoritetaan, kun hiiri napsauttaa painiketta nimeltä Command1.

    Sana Yksityinen tarkoittaa - suljettu, eli menettely kuuluu vain tähän lomakkeeseen tai moduuliin, eikä sitä voi käyttää muissa säiliöissä (lomakkeet, moduulit). Jos tämä sana jätetään pois, menettely on avoin muille säiliöille.

    Sub- menettely.

Huomautus: Proseduureja lukuun ottamatta on toimintoja - toiminto. Funktiot eivät liity tapahtumiin ja voivat lisäksi palauttaa työnsä tuloksen (laskelmat).

    Ohjauselementti(tai lomakkeen nimi): määrittää ominaisuuteen tallennetun elementin tarkan nimen nimi.

    Tapahtuma- tapahtuman nimi. Tässä muutamia tapahtumia:

    Napsauta - hiiren napsautus;

    DblClick - kaksoisnapsautus;

    KeyPress - näppäinpainallus;

    Unload - lomakkeen purkaminen (kun lomake suljetaan, ohjelma päättyy);

    Aktivoi - lomakkeen aktivointi (kun napsautat lomaketta, kun sen otsikko on korostettu);

    Poista käytöstä - deaktivoi lomake (klikkaamalla toista lomaketta).

    Alusta - luotaessa muototyyppistä objektia.

    Muuta kokoa - kun muutat lomakkeen kokoa

    Lopeta - kun lomake poistetaan

    Argumentit on alustavat tiedot, jotka siirretään käsittelyyn.

Mukautetuilla menettelyillä on seuraava otsikko:

Menettelyn nimi pitäisi olla ainutlaatuinen, täytyy alkaa kirjaimella, ei saa sisältää välilyöntejä tai muita merkkejä kuin alaviivoja. Nimen mukaan prosessi kutsutaan, kun se on suoritettava.

    Menettelyn loppu - lopettaa proseduurin ohjelmakoodin: End Sub

Huomautus: toiminnoille: Lopeta toiminto

    menettelyn elin ovat rivit otsikon ja lopun välillä. Niiden lukumäärä on rajoittamaton. Rivit sisältävät ohjeita, jotka on suoritettava, kun proseduuria kutsutaan (tapahtuma tapahtuu).

Aliohjelma (Sub) - on proseduuri, joka suorittaa ohjelmakoodin lohkossaan eikä palauta arvoa. Yksinkertaisen aliohjelman syntaksi on:

( Yksityinen | Julkinen ) Sub alipää ()

..koodiriviä loppu Sub

Aliohjelman laajuus;

Proseduurin alatyyppi (eli aliohjelma);

subMain aliohjelmalle annettu nimi;

End Sub - aliohjelman koodilohkon loppu.

Luo menettely

Voit luoda menettelyn seuraavasti:

    1 tapa - kaksoisnapsauta haluamaasi ohjausobjektia tai lomaketta. Näyttöön tulee koodiikkuna, jossa näkyy toimenpiteen otsikko ja loppu. Jos toinen tapahtuma tarvitaan, se valitaan koodiikkunan oikeassa yläkulmassa olevasta luettelosta.

    2 tapa - avaa koodiikkuna, suorita Työkalut → Lisää menettely → määritä toimenpiteen nimi ja parametrit → Ok.

    3 tapaa - avaa koodiikkuna ja syötä tarvittavat rivit näppäimistöltä.

Tuloksena pitäisi olla:

Yksityinen alakomento1_Click()

Kutsumenettelyt suorittamista varten

    Jotta tapahtumaproseduuri voidaan suorittaa, tapahtuman on tapahduttava.

    Jos haluat suorittaa mielivaltaisen toimenpiteen toisen proseduurin rungossa, määritä tämän toiminnon nimi.

Yksityinen alakomento1_Click()

Tässä, kun Command1-painiketta napsautetaan, Click-tapahtuma nostetaan ja Kvadrat-proseduuri kutsutaan ja suoritetaan.

Proseduurikoodi suoritetaan rivi riviltä ja ylhäältä alas.

Toiminto (toiminto) - se on proseduuri, joka suorittaa koodinsa rivejä ja palauttaa jonkin arvon. Yksinkertaisen funktion syntaksi on:

toiminto FunctionName() Tietotyyppinä

... rivitkoodi

FunctionName = Paluuarvolopputoiminto

Toiminnan laajuus;

Function on Visual Basic -avainsana, joka ilmaisee, että tämä on funktio;

FunctionName () - toiminnolle annettu nimi;

AS on Visual Basic -avainsana, joka edeltää tietotyypin määritystä;

tietotyyppi palautusarvon tietotyyppi;

ReturnValue arvo, joka pitäisi antaa funktion nimelle (tämä on erittäin tärkeä kohta!);

End Function - annetun koodilohkon loppu.

Lähdekoodia käytetään joko objektikoodin saamiseksi tai tulkki suorittaa sen. Kohdekoodiin ei koskaan tehdä muutoksia, vain lähdekoodiin, minkä jälkeen objektikoodi muunnetaan uudelleen.

Toinen lähdekoodin tärkeä tarkoitus on ohjelman kuvaus. Ohjelman tekstin mukaan voit palauttaa sen toiminnan logiikan. Kommentteja käytetään helpottamaan lähdekoodin ymmärtämistä. On myös työkaluja, joiden avulla voit saada automaattisesti lähdekoodin dokumentaation - ns. dokumentaatiogeneraattorit.

Lisäksi lähdekoodilla on monia muita käyttötarkoituksia. Sitä voidaan käyttää opetusvälineenä; Aloitteleville ohjelmoijille voi olla hyödyllistä tutkia olemassa olevaa lähdekoodia ohjelmointitekniikoiden ja -menetelmien oppimiseksi. Sitä käytetään myös viestintävälineenä kokeneiden ohjelmoijien välillä sen (täydellisen) tiiviin ja yksiselitteisen luonteen vuoksi. Koodin jakaminen kehittäjien kesken mainitaan usein parempaan ohjelmointikokemukseen vaikuttavana tekijänä.

Ohjelmoijat siirtävät usein lähdekoodia projektista toiseen, jota kutsutaan koodin uudelleenkäytöksi ( ohjelmistojen uudelleenkäytettävyys).

Lähdekoodi on olennainen osa ohjelmistojen siirtämistä muille alustoille. Ilman minkään ohjelmiston lähdekoodia siirtäminen on joko liian vaikeaa tai ei ollenkaan mahdollista.

Organisaatio

Ohjelmiston jonkin osan (moduulin, komponentin) lähdekoodi voi koostua yhdestä tai useammasta . Ohjelmakoodia ei välttämättä kirjoiteta vain yhdellä ohjelmointikielellä. Esimerkiksi usein C-kielellä kirjoitetut ohjelmat sisältävät optimointitarkoituksessa koodin lisäyksiä kokoonpanokielellä. On myös tilanteita, joissa jotkin ohjelman komponentit tai osat on kirjoitettu eri kielillä, minkä jälkeen ne kootaan yhdeksi suoritettavaksi moduuliksi kirjaston linkitykseksi tunnetulla tekniikalla ( kirjaston linkittäminen).

Monimutkaisen ohjelmiston rakentaminen vaatii kymmeniä tai jopa satoja lähdekooditiedostoja. Tällaisissa tapauksissa rakentamisen yksinkertaistamiseksi käytetään yleensä projektitiedostoja, jotka sisältävät kuvauksen lähdetiedostojen välisistä riippuvuuksista ja kuvaavat koontiprosessin. Nämä tiedostot voivat sisältää myös muita kääntäjä- ja kehitysympäristövaihtoehtoja. Eri suunnitteluympäristöissä voidaan käyttää erilaisia ​​projektitiedostoja, ja joissakin ympäristöissä nämä tiedostot voivat olla ohjelmoijan suoraan muokkaukseen soveltuvassa tekstimuodossa yleiskäyttöisiä tekstieditoreja käyttäen, toisissa ympäristöissä tuetaan erikoismuotoja ja tiedostoja luodaan ja muokataan erikoistyökaluilla. ohjelmat. Projektitiedostot sisältyvät yleensä käsitteeseen "lähdekoodi". Suurin osa nykyaikaisista kieliympäristöistä käyttää projektitiedostoja riippumatta projektin muun lähdekoodin monimutkaisuudesta. Usein lähdekoodilla tarkoitetaan myös resurssitiedostoja, jotka sisältävät erilaisia ​​tietoja, esimerkiksi ohjelman rakentamiseen tarvittavia graafisia kuvia.

Versionhallintajärjestelmiä käytetään helpottamaan työskentelyä lähdekoodin kanssa, tekemään yhteistyötä koodin parissa ohjelmoijatiimin kanssa.

Laatu

Toisin kuin ihmisillä, tietokoneelle ei ole "hyvin kirjoitettua" tai "huonosti kirjoitettua" koodia. Mutta koodin kirjoitustapa voi vaikuttaa suuresti ohjelmiston ylläpitoprosessiin. Voit puhua lähdekoodin laadusta seuraavien parametrien yhteydessä:

  • koodin luettavuus (mukaan lukien kommenttien olemassaolo tai puuttuminen koodiin - kääntäjäohjelman jättämät mielivaltaisen tekstin lohkot);
  • tuen, testauksen, virheenkorjauksen ja virheenkorjauksen, muokkauksen ja siirtämisen helppous;
  • alhainen monimutkaisuus;
  • alhainen resurssien käyttö - muisti, prosessori, levytila;
  • kääntäjän tuottamien kommenttien puute;
  • "roskan" puuttuminen - niin sanotut "kuollut muuttujat" (eli muuttujat, joita ei käytetä), lausunnot, joita ei koskaan suoriteta, kommentit tämän koodin aiemmista versioista, jotka ovat menettäneet merkityksensä jne.

Ei-suoritettava lähdekoodi

Copyleft-lisenssit ilmaisille ohjelmistoille edellyttävät lähdekoodin uudelleenjakelua. Näitä lisenssejä käytetään usein myös muihin kuin ohjelmistotöihin, kuten dokumentaatioon, kuviin, tietokonepelien tiedostoihin.

Tällöin lähdekoodin katsotaan olevan tietyn teoksen muoto, joka on edullinen sen editoinnissa. Muissa kuin ohjelmistolisensseissä sitä voidaan kutsua myös "läpinäkyväksi muotoiseksi" versioksi. Se voisi olla esimerkiksi:

  • datahäviöllä pakatulle tiedostolle - häviötön versio;
  • bittikartalle - vektoriversio;
  • kolmiulotteisen mallin kaksiulotteiselle kuvalle - kolmiulotteinen malli
  • tekstikuvalle - sama teksti tekstimuodossa;

ja lopuksi itse tiedosto, jos se täyttää määritetyt ehdot tai jos sopivampaa versiota ei yksinkertaisesti ollut olemassa.

Tarkoitus

Lähdekoodia käytetään joko objektikoodin saamiseksi tai tulkki suorittaa sen. Kohdekoodiin ei koskaan tehdä muutoksia, vain lähdekoodiin, minkä jälkeen objektikoodi muunnetaan uudelleen.

Toinen lähdekoodin tärkeä tarkoitus on ohjelman kuvaus. Ohjelman tekstin mukaan voit palauttaa sen toiminnan logiikan. Kommentteja käytetään helpottamaan lähdekoodin ymmärtämistä. On myös työkaluja, joiden avulla voit saada automaattisesti lähdekoodin dokumentaation - ns. dokumentaatiogeneraattorit.

Lisäksi lähdekoodilla on monia muita käyttötarkoituksia. Sitä voidaan käyttää opetusvälineenä; Aloitteleville ohjelmoijille voi olla hyödyllistä tutkia olemassa olevaa lähdekoodia ohjelmointitekniikoiden ja -menetelmien oppimiseksi. Sitä käytetään myös viestintävälineenä kokeneiden ohjelmoijien välillä sen tiiviin ja yksiselitteisen luonteen vuoksi. Koodin jakaminen kehittäjien kesken mainitaan usein parempaan ohjelmointikokemukseen vaikuttavana tekijänä.

Ohjelmoijat siirtävät usein lähdekoodia (moduuleina, sellaisenaan tai mukautettuina) projektista toiseen, mitä kutsutaan koodin uudelleenkäytöksi.

Lähdekoodi on olennainen osa ohjelmistojen siirtämistä muille alustoille. Ilman minkään ohjelmiston lähdekoodia siirtäminen on joko liian vaikeaa tai ei ollenkaan mahdollista.

Organisaatio

Ohjelmiston jonkin osan (moduulin, komponentin) lähdekoodi voi koostua yhdestä tai useammasta . Ohjelmakoodia ei välttämättä kirjoiteta vain yhdellä ohjelmointikielellä. Esimerkiksi usein C-kielellä kirjoitetut ohjelmat sisältävät optimointitarkoituksessa koodin lisäyksiä kokoonpanokielellä. On myös tilanteita, joissa jotkin ohjelman komponentit tai osat kirjoitetaan eri kielillä ja kootaan sitten yhdeksi suoritettavaksi yksiköksi käyttämällä tekniikkaa, joka tunnetaan nimellä kirjaston linkitys ( kirjaston linkittäminen).

Monimutkaisen ohjelmiston rakentaminen vaatii kymmeniä tai jopa satoja lähdekooditiedostoja. Tällaisissa tapauksissa rakentamisen yksinkertaistamiseksi käytetään yleensä projektitiedostoja, jotka sisältävät kuvauksen lähdetiedostojen välisistä riippuvuuksista ja kuvaavat koontiprosessin. Nämä tiedostot voivat sisältää myös valintoja kääntäjälle ja kehitysympäristölle. Eri suunnitteluympäristöissä voidaan käyttää erilaisia ​​projektitiedostoja, ja joissakin ympäristöissä nämä tiedostot voivat olla ohjelmoijan suoraan muokkaukseen soveltuvassa tekstimuodossa yleiskäyttöisiä tekstieditoreja käyttäen, toisissa ympäristöissä tuetaan erikoismuotoja ja tiedostoja luodaan ja muokataan erikoistyökaluilla. ohjelmat. Projektitiedostot sisältyvät yleensä käsitteeseen "lähdekoodi". Suurin osa nykyaikaisista kieliympäristöistä käyttää projektitiedostoja riippumatta projektin muun lähdekoodin monimutkaisuudesta. Usein lähdekoodilla tarkoitetaan myös resurssitiedostoja, jotka sisältävät erilaisia ​​tietoja, esimerkiksi ohjelman rakentamiseen tarvittavia graafisia kuvia.

Versionhallintajärjestelmiä käytetään helpottamaan työskentelyä lähdekoodin kanssa, tekemään yhteistyötä koodin parissa ohjelmoijatiimin kanssa.

Laatu

Toisin kuin ihmisillä, tietokoneelle ei ole "hyvin kirjoitettua" tai "huonosti kirjoitettua" koodia. Mutta kuinka koodi kirjoitetaan, voi olla suuri vaikutus ohjelmiston ylläpitoprosessiin. Lähdekoodin laatu voidaan arvioida seuraavilla parametreilla:

  • koodin luettavuus (mukaan lukien koodin kommentit);
  • tuen, testauksen, virheenkorjauksen ja virheenkorjauksen, muokkauksen ja siirtämisen helppous;
  • resurssien taloudellinen käyttö - muisti, prosessori, levytila;
  • kääntäjän tuottamien kommenttien puute;
  • "roskan" puuttuminen - käyttämättömät muuttujat, tavoittamattomat koodilohkot, tarpeettomat vanhentuneet kommentit jne.;
  • riittävä virheiden käsittely;
  • siirrettävyys - kyky käyttää eri versioiden tai jopa eri käyttöjärjestelmien käsittelijää (kääntäjä, tulkki, kääntäjä);
  • kyky kansainvälistää käyttöliittymä.

Ei-suoritettava lähdekoodi

Copyleft-lisenssit ilmaisille ohjelmistoille edellyttävät lähdekoodin uudelleenjakelua. Näitä lisenssejä käytetään usein myös muihin kuin ohjelmistotöihin, kuten dokumentaatioon, kuviin, tietokonepelien tiedostoihin.

Tällöin lähdekoodin katsotaan olevan tietyn teoksen muoto, joka on edullinen sen editoinnissa. Muissa kuin ohjelmistolisensseissä sitä voidaan kutsua myös "läpinäkyväksi muotoiseksi" versioksi. Se voisi olla esimerkiksi:

  • datahäviöllä pakatulle tiedostolle - häviötön versio;
  • vektorikuvan tai kolmiulotteisen mallin renderöimiseksi - vastaavasti vektoriversio ja malli;
  • tekstikuvalle - sama teksti tekstimuodossa;
  • musiikille - tiedosto musiikkieditorin sisäisessä muodossa;
  • ja lopuksi itse tiedosto, jos se täyttää määritetyt ehdot tai jos sopivampaa versiota ei yksinkertaisesti ollut olemassa.

Katso myös


Wikimedia Foundation. 2010 .

Katso, mitä "lähdekoodi" on muissa sanakirjoissa:

    Filminegatiivin lähdemateriaalit, vastatyyppi, elokuvan kontrollikopio, musiikin uudelleentallenteen magneettisten äänitteiden alkuperäinen, kohina, videofonogrammimasteri, CD jne. Synonyymit: tulkki suorittaa tekstin joko suoraan tai ... ... Talousalan sanasto

    Ihmisen kirjoittama tietokoneohjelman teksti ohjelmointikielellä Liiketoiminnan termien sanasto. Akademik.ru. 2001... Liiketoiminnan termien sanasto

    lähde- - Tietoliikenneaiheet, peruskäsitteet EN lähdekoodi ... Teknisen kääntäjän käsikirja

    lähde- 3.1.13 lähdekoodi: Tietokoneohjelma, joka on ilmaistu ihmisen luettavassa muodossa (ohjelmointikieli), joka käännetään koneellisesti luettavaan muotoon (objektikoodi) ennen kuin se voidaan testata ... ... Normatiivisen ja teknisen dokumentaation termien sanakirja-viitekirja

    lähde- alkuperäisen tekstin kieli... Selittävä käännössanakirja

    Lähdekoodi: Tietokoneohjelman ihmisen kirjoittaman tekstin lähdekoodi. Lähdekoodi Duncan Jonesin ohjaamaan teknotrilleriin ... Wikipedia

    Tällä termillä on muita merkityksiä, katso lähdekoodi. Lähdekoodi ... Wikipedia

    Tästä artikkelista puuttuu linkkejä tietolähteisiin. Tietojen tulee olla todennettavissa, muuten ne voidaan kyseenalaistaa ja poistaa. Voit... Wikipedia

    Open Source Initiative (OSI) logo Avoimen lähdekoodin ohjelmisto on avoimen lähdekoodin ohjelmisto. Luotujen ohjelmien lähdekoodi on avoin, eli katseltavissa ja muokattavissa. Tämä on ... ... Wikipedia

    Lähdeohjelma (lähdekoodi)- 48) lähdeohjelma (lähdekoodi) vastaava esitys yhdestä tai useammasta prosessista, joka ohjelmointijärjestelmä voi muuntaa laitteistolla suoritettavaan muotoon (oliokoodi tai objektikieli) (luokat 6, 7 ja 9); … Virallinen terminologia

Nykyään monilla yrityksillä ja yksityishenkilöillä on tarve omilla verkkosivuilla, minkä vuoksi Internet-hankkeiden kehittämistä ja edistämistä koskeva tieto on niin kysyttyä. Monet ovat kiinnostuneita kysymyksestä - kuinka luoda verkkosivusto, koodi jolle se on kuin talon perustus? Yritetään ymmärtää tämä ongelma perehtymällä verkkokehityksen aiheeseen.

Verkkosivusto ei ole vain kokoelma tekstiä, linkkejä, kuvia ja värikkäitä bannereita, se on myös ohjelmakoodi, joka toimii käyttäjän tietokoneella tai palvelinpuolella. Ja jos melkein kaikki voivat tänään luoda vaaditun muotoisia kuvia vaaditulla resoluutiolla ja laadulla käyttämällä valmiita kuvia Internetistä tai mistä tahansa suositusta graafisesta muokkausohjelmasta, luo sitten verkkosivuston koodi ei-asiantuntija on täynnä huomattavia vaikeuksia.

Sovellusten ja Internet-projektin laatu kokonaisuudessaan riippuu vahvasti sivustoa kehittävän ohjelmoijan taidosta, jonka ohjelmakoodissa saattaa olla virheitä, jotka vaikuttavat suuresti verkkosivujen latausnopeuteen ja moniin muihin koko sivuston näkökohtiin, mukaan lukien turvallisuuteen liittyvät. Siksi koodin virheiden havaitseminen ja poistaminen on pakollinen osa mitä tahansa verkkosivustoa luotaessa. On parasta uskoa monimutkaisen yrityksen verkkosivuston kehittäminen asiantuntijoille (jos et ole sellainen), koska joitain virheitä on vaikea havaita, ja monet niistä voivat myöhemmin johtaa verkkosivujen hitaaseen latautumiseen ja virheelliseen näyttöön Internetin selaimissa. käyttäjien tietokoneita. Liian pitkä lataus voi aiheuttaa kävijöiden poistumisen sivustolta ja liikenteen laadun heikkenemistä, mikä heikentää kaupallisten Internet-projektien käytöstä saatavaa voittoa ja tehokkuutta.

HTML ja CSS ensin

Verkkodokumentin perusta on HTML-kuvauskielellä kirjoitettu koodi. Merkintäkieltä ei pidä sekoittaa ohjelmointikieleen, ja mikä ero on, on kirjoitettu yksityiskohtaisesti. Periaatteessa käyttämällä komentosarjaa, joka tarjoaa HTML-sivuston kehittäjälle, voit asettaa kaikki staattisen verkkodokumentin tarvittavat parametrit - elementtien sijainnin (lohkomerkinnät), otsikot, kappaleet, taulukot, kuvat jne. Ja CSS:n, erityisen HTML-lisäosan, avulla voit sijoittaa kaikki luetellut merkintäobjektit, muuttaa niiden tyyliä - väriä, kokoa, muotoa jne.

Sitten JavaScript

Interaktiiviset ja animoidut elementit, kuten bannerit, ticker, palautelomake, toimivat verkkosivuilla palvelin- tai asiakasohjelmointikielillä kirjoitettujen komentosarjojen ja koodin vuoksi. JavaScript-ohjelmointikielellä kehitetyt skriptit ovat erittäin suosittuja. Tällaiset asiakasskriptit eivät käytä työssään palvelimen ominaisuuksia ja ne suoritetaan käyttäjän tietokoneen puolella, eli selaimessa. Tämä tekee JavaScript-sovelluksista yksinkertaisia ​​ja nopeita.

Ja lopuksi PHP

Kun on tarpeen kirjoittaa monimutkaisia ​​ja laajoja koodeja, esimerkiksi foorumeille tai vieraskirjoille, ohjelmoijat kääntyvät palvelinpuolen ohjelmointikielien puoleen ja erityisesti . PHP-koodit suoritetaan palvelinpuolella, joten niiden työ voi olla jonkin verran hitaampaa riippuen etätietokoneen yhteyden nopeudesta ja sen kiireisyydestä. PHP- ja SQL-komentojen (erityinen relaatiotietokantakyselykieli) avulla voit järjestää sivuston vuorovaikutuksen tietokantojen kanssa ja luoda interaktiivisia Internet-projekteja - foorumeita, verkkokauppoja, ilmoitustauluja, erilaisia ​​hakemistoja jne.

Sivuston perustana on ohjelmakoodi muokkasi viimeksi: 3. maaliskuuta 2016, tekijä Admin

(HCS08-mikro-ohjainten suunnittelijan opas)

Esimerkissä 12.1 tarkastellaan koodia, jonka avulla voit kirjoittaa ja poistaa omia tietojasi flash-muistiin. Tällaisia ​​toimenpiteitä voidaan tarvita, jos laitteen käyttäjä suorittaa lisämäärityksiä tälle laitteelle ja haluaa, että valitut asetukset tallennetaan virran katkaisemisen jälkeen.

Aiemmin totesimme, että HCS08-perheen MCU:t eivät salli flash-muistin tyhjennys- ja ohjelmointitoimintojen suorittamista, vaan myös näiden tilojen ohjausohjelman suorittamista flash-muistista. Muista kirjoittaa ensin poisto- ja ohjelmointitoiminnoista vastaava ohjelmakoodi uudelleen RAM-muistiin ja sitten suorittaa tämä koodi suorittamista varten. Poisto- ja ohjelmointiprosessin aikana flash-muistimoduuliin kohdistetaan korotettu jännite. Tämä ei kuitenkaan aiheuta ohjelman kaatumista, koska se suoritetaan RAM-muistista tällä hetkellä.

NXP on kehittänyt joukon assembly-kieliapuohjelmia, joiden avulla on helppo luoda oma koodi flash-muistin ohjelmointia varten laitteen käyttöohjelman ohjauksessa. Nämä apuohjelmat sijaitsevat tiedostossa doonstack.asm. Tämä tiedosto tulee sisällyttää projektiin kuvan mukaisesti. 12.3.

Riisi. 12.3. Projektiikkuna, jossa mukana tiedosto doonstack.asm.

Tiedoston sisältö doonstack.asm esitetään alla. Käytetyn ohjelmakoodin alkuperäinen teksti on annettu, joten kommentteja ei käännetä.


;* Tämä paperitavara on tarkoitettu toimimaan puitteena *
;* käyttäjäsovellus. Saat kattavamman ohjelman, joka *
;* esittelee tämän *
;* prosessori, katso esittelysovellukset *
;*, joka sijaitsee *:n esimerkkialihakemistossa
;* Metrowerks Codewarrior HC08-ohjelmahakemistoon *
;**************************************************************
; vientisymbolit
XDEF DoOnStack
XDEF FlashErase
XDEF FlashProg
; käytämme vientiä "Entry" symbolina. Tämä antaa meille mahdollisuuden
; mainitse "Entry" joko linkerin .prm-tiedostossa
; tai myöhemmin C/C++:sta

; sisältävät johdannaiskohtaiset makrot
Sisällytä "MC9S08GB60.inc"

Kahdella seuraavalla rivillä ei saa olla kommentteja ja niille on määritettävä haluamasi arvot.

;mPageErase vastaa 40 dollaria
;mByteProg vastaa 20 dollaria
mFACCERR vastaa 10 dollaria
mFPVIOL vastaa 20 dollaria
mFCBEF 80 dollaria
; muuttuja/data-osio
MY_ZEROPAGE: SECTION LYHYT
; Lisää tähän tietosi määritelmä. Esittelyyn käytetään temp_bytea.
; temp_byte ds.b 1
; koodiosio
MyCode: SECTION
;**************************************************************
; tätä kokoonpanorutiinia kutsutaan C/C++-sovellukseksi
DoOnStack: pshx
pshh ;tallenna osoitin flash-muistiin
psha ;tallenna komento pinoon
ldhx #SpSubEnd ;piste viimeisessä tavussa pinoon siirtymiseksi;
SpMoveLoop: lda ,x ;lue flashistä
psha ;siirrä pinoon
aix #-1 ;seuraava siirrettävä tavu
cphx #SpSub-1 ;menneisyydessä?
bne SpMoveLoop ;silmukka koko pinoon
tsx ;osoita pinon alapuolelle
tpa ;siirrä CCR kohtaan A testausta varten
ja #$08 ;tarkista I-naamio
bne I_set ;ohita jos olen jo asettanut
sei ;block keskeyttää FLASHin ollessa varattu
lda SpSubSize+6,sp ;esilataa tiedot komentoja varten
cli ;ok poista I mask nyt
bra I_cont ;jatka pinon kohdistamisen purkamista
I_set: lda SpSubSize+6,sp ;esilataa tiedot komentoa varten
jsr ,x ;suorita pinon ali
I_cont: ais #SpSubSize+3 ;deallocate sub body + H:X + komento
;H:X salamaosoitin OK SpSubilta
lsla ;A=00 & Z=1, ellei PVIOL tai ACCERR
rts ;vilkkua missä DoOnStack kutsuttiin
;**************************************************************
SpSub: ldhx LOW(SpSubSize+4),sp ;hae flash-osoite pinosta
sta 0,x ;kirjoita flashiin; lukkoosoite ja tiedot
lda SpSubSize+3,sp ;hae flash-komento
sta FCMD ;kirjoita flash-komento
lda #mFCBEF ;mask käynnistää komennon
sta FSTAT ; rekisteröi komento
nop ;[p] haluavat min 4~ w-jaksosta r:ään
ChkDone: lda FSTAT ; joten FCCF on voimassa
lsla ;FCCF nyt MSB:ssä
bpl ChkDone ;silmukka, jos FCCF = 0
SpSubEnd: rts ;takaisin DoOnStackiin flashissä
SpSubSize: equ (*-SpSub)
;**************************************************************
FlashErase: psha ;säädä sp DoOnStack-merkinnälle

lda #mPageErase ;maskikuvio sivun poistokomennolle
bsr DoOnStack ;finish komento pinopohjaisesta aliarvosta
rts
;**************************************************************
FlashProg: psha ;tallenna sisääntulotiedot väliaikaisesti
lda #(mFPVIOL+mFACCERR) ;maski
sta FSTAT ;keskeytä kaikki komennot ja poista virheet
lda #mByteProg ;maskikuvio byte prog -komennolle
bsr DoOnStack ;suorita prog-koodi pinon RAM-muistista
ais #1 ;irrota tietojen sijainti pinosta
rts
;**************************************************************

Myös C:n ohjelmakoodin tekstissä direktiivi #sisältää yhdistä tiedosto doonstack.h, jonka teksti näkyy alla.


/* */
/* Projektin nimi: doonstack.h */
/* Muokattu viimeksi: 04/11/2004 */
/* Lähettäjä: r60817 */
/* */
/* */
/**********************************************************************/
/* */
/* Kuvaus: MC9S08GB60_FLASH_DOONSTACK - demo */
/* */
/* */
/* Dokumentaatio: MC9S08GB60/D Rev. 2,2 */
/* HCS08RMv1/D Rev. 1(4.8FLASH-sovellusesimerkit) */
/* */
/* Tämä ohjelmisto on luokiteltu suunnittelunäyteohjelmistoksi. */
/* */
/**********************************************************************/
/* */
/* FREESCALEN tässä asiassa suorittamat palvelut suoritetaan SELLAISENAAN */
/* ja ilman takuuta. ASIAKAS säilyttää lopullisen päätöksen */
/* suhteessa lopputuotteen kokonaissuunnitteluun ja toimivuuteen. */
/* FRESCALE ei takaa eikä ole ASIAKAS vastuussa */
/* tämän projektin onnistumisesta. FRESCALE KIISTÄÄ KAIKKI */
/* TAKUUT, NIMENOMAISET, OLUETUT TAI LAKISÄÄTEISET MUKAAN MUKAAN MUKAAN MUKAAN MUTTA EI */
/* RAJOITETTU OLUETTU TAKUU MYYNTIKELPOISUUDESTA TAI SOVELTUVUUDESTA */
/* TOIMITETTUJEN LAITTEISTOJEN ERITYINEN TARKOITUS, OHJELMISTO TAI NEUVOTUS */
/* PROJEKTIIN FREESCALE- JA TAI MUKAAN TUOTTEELLE JOHTAA */
/* ILMAISPALVELUT . FREESCALE EI OLE MISSÄÄN TAPAUKSESSA VASTUUSSA */
/* TÄSTÄ SOPIMUKSESTA AIHEUTUVAT SATUNNAISET TAI VÄLILLISET VAHINGOT. */
/* */
/* ASIAKAS sitoutuu pitämään FRESCALEn vaarattomana kaikkia vastaan ​​*/
/* vaatii kenenkään vaatimuksia tai toimia vahingon vuoksi tai */
/* vamma, joko kaupallinen, sopimusperusteinen tai mutkikas, kasvaa */
/* suoraan tai välillisesti neuvonnan tai avun seurauksena */
/* toimitettu ASIAKKAALLE tuotteen, palvelun tai tavaran yhteydessä */
/* toimitetaan tämän sopimuksen mukaisesti. */
/* */
/**********************************************************************/
/*
- tämän tiedoston API välillä main.c ja doonstack.asm
*/
#ifndef _doonstack
#define _doonstack
#ifdef __cplusplus
extern "C" ( /* kokoonpanotoiminnoillamme on C-kutsukäytäntö */
#loppu Jos
void DoOnStack(void); /* prototyyppi DoOnStack-rutiinille */
void FlashErase(allekirjoittamaton merkki *); /* prototyyppi FlashErase-rutiinille */
/* Sivun tyhjennyskomento */
void FlashProg(signed char *, unsigned char); /* prototyyppi FlashProg-rutiinille */
/* Byte Program -komento */
#ifdef __cplusplus
}
#loppu Jos

#endif /* _doonstack */
/**********************************************************************/

Esimerkissämme 512 tavun lohko on varattu haihtumattoman tiedon kirjoittamiseen. Tämä lohkokoko valittiin, koska se on MC9S08QG8-mikrokontrollerissa poistettavien flash-muistisolujen vähimmäiskoko. Valittu lohko sijaitsee MCU:n pysyvän flash-osoiteavaruuden alussa: 0xE000 - 0xE1FF. Ohjelmakoodi alkaa osoitteesta 0xE200 ja voi varata osoitetilan jopa 0xFFFF.

Tietojen ja ohjelmakoodien aiotun sijoittelun toteuttamiseksi sinun on muutettava tiedoston linkittäjäasetuksia projekti.prm.

Vakioprojektissa oli merkintä:


ROM = VAIN LUKU 0xE000 - 0xFFAD;

Se pitäisi vaihtaa:

SEGMENTIT /* Tässä luetellaan kaikki laitteen RAM/ROM-alueet */
ROM = VAIN LUKU 0xE200 - 0xFFAD;

Esimerkissämme käytetään myös ohjelmakoodialueen kirjoitussuojaustilaa, ts. osoiteavaruus 0xF200 - 0xFFFF. Kuvassa 12. 4 esittää prosessia, jolla luodaan koodi FPROT-rekisteriin, joka suojaa osoiteavaruutta 0xF200 ... 0xFFFF tahattomalta poistamiselta/kirjoitukselta. Suojaamattoman osoiteavaruuden viimeisen osoitteen 0xF1FF seitsemän tärkeintä bittiä on kirjoitettava FPROT-rekisteriin.

Osoite A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0xE1FF 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1
FPROT FPS7 FPS6 FPS5 FPS4 FPS3 FPS2 FPS1 FPDIS
0xE0 1 1 1 0 0 0 0 0

Riisi. 12.4. Turvakoodimerkinnän muodostaminen FPROT-rekisteriin.

Esimerkki 12.1. Toiminnot haihtumattomien tietojen kanssa flash-muistissa

// Demokortti DEMO9S08QG8
// tyhjennä/kirjoita/lue pysyvä flash
#include /* EnableInterrupts-makrolle */
#include "derivative.h" /* sisältää oheislaitteiden ilmoitukset */
#include "hcs08.h" /* Tämä on ilmoitustiedostomme! */
#include "doonstack.h"
#define BUSCLK 8000000
#define vFCDIV (BUSCLK/200000-1)
char fdata, toiminta;
allekirjoittamaton int faddress;
// Määritä kirjoitussuojattu osoitealue: 0xE200 - 0xFFFF
const tavu NVPROT_INIT@0x0000FFBD = 0xE0;
// Alusta MK
void mcu_init(void)
{
SOPT1 = bBKGDPE; // Ota käyttöön BKGD-virheenkorjausrivitoiminto
ICSSC=NV_FTRIM; // Kirjoita FTRIM trimmiarvo
ICSTRM = NV_ICSTRM; // Kirjoita TRIM trimmiarvo
ICSC2 = 0; // ICSOUT = DCOUT / 1
// BUSCLK = 8 MHz
FCDIV=vFCDIV; // Kirjoita FCLK-taajuuden jakajakoodin arvo
// (FCLK = 200 kHz)
}
#pragma inline
// Toiminto tavun lukemiseksi muistisolusta, jolla on annettu osoite
char flash_read(allekirjoittamaton sisäosoite)
{
unsigned char *osoitin;
osoitin = (merkki*) osoite;
return(*osoitin);
}
// Toiminto kirjoittaa tavu muistisoluun tietyllä osoitteella
char flash_write(allekirjoittamaton int-osoite, allekirjoittamaton merkkidata)
{
unsigned char *osoitin;
osoitin = (merkki*) osoite;
FlashProg(osoitin, data); // Kutsu salaman ohjelmointitoiminto
jos (FSTAT_FACCERR) data=1; elsedata=0;
jos (FSTAT_FPVIOL) data|=2;
palautus(data);
}
// Toiminto, joka poistaa määritetyn lohkon flash-muistialueelta
allekirjoittamaton char flash_sector_erase(signed int address)
{
unsigned char *osoitin, res;
osoitin = (merkki*) osoite;
FlashErase(osoitin);
jos (FSTAT_FACCERR) res=1; muuten res=0;
jos (FSTAT_FPVIOL) res|=2;
paluu(res);
}
void main(void)
{
mcu_init();
fdata = 0;
faddress = 0xE000;
toiminta = 0;
kun (1)
{
kytkin (toiminta)
{
tapaus 1: // Poista lohko
fdata = flash_sector_erase(faddress);
toiminta = 0;
tauko;
tapaus 2: // Kirjoita tavu
fdata = flash_write(faddress,fdata);
toiminta = 0;
tauko;
tapaus 3: // Lue tavu
fdata = flash_read(faddress);
toiminta = 0;
tauko;
}
}
}

Harkitse esimerkin 12.1 ohjelmakoodin testausmenetelmää. Voit tehdä tämän virheenkorjausikkunassa Data lisää kolme muuttujaa: faddress, fdata, operaatio. Asetamme myös ikkunan päivittymään säännöllisesti, esimerkiksi 200 ms:n kuluttua.

Ennen kuin suoritat ohjelmakoodin, kirjoita muuttujaan faddress kirjoitettava osoite, mutta muuttuja fdata— tavu kirjoitettavaa dataa. Muuttujan vieressä operaatio kirjoita muistiin koodi 0x02. Esimerkkiohjelmakoodin suorittamisen jälkeen datatavu kirjoitetaan valittuun flash-muistipaikkaan. Huomaa, että valitun solun tulee olla poistetussa tilassa, ts. sen pitäisi sisältää koodi 0xFF.

Jos haluat tyhjentää muistilohkon 0xE00...0xE1FF, kirjoita kohtaan faddress mikä tahansa osoite määritetyltä alueelta ja aseta muuttuja operaatio c 1. Suorita seuraavaksi koodi uudelleen suorittamista varten.

Tietojen lukeminen flash-muistista on myös helppoa. Voit tehdä tämän kirjoittamalla muuttujan faddress osoitekoodi, muuttujaksi operaatio- koodi 0x03. Valitun flash-muistipaikan sisältö näkyy muuttujassa fdata koodin suorittamisen jälkeen.

Huomaa, että toiminnot flash_write() Ja flash_sector_erase() palauttaa tyyppisen muuttujan veloittaa virhekoodilla toimintoa suoritettaessa: 0 - ei ollut virhettä, 0x02 - oli pääsyvirhe, 0x04 - suojattu osoiteavaruus yritettiin tyhjentää / kirjoittaa. Molemmat toiminnot vaativat noin 35 tavua pinomuistia suorittaakseen. Jos pinon todellinen pinta-ala on pienempi, tapahtuu kohtalokas virhe. Ohjelman suorituskyky on mahdollista palauttaa vain nollaamalla MK.

Jotta voit tarkastella flash-muutoksia debuggerissa, sinun on tehtävä joitakin muutoksia virheenkorjausohjelman kokoonpanoon. Oletusasetusten mukaisesti debuggeri lukee MCU-flash-alueen vain kerran virheenkorjausistunnon aloittamisen jälkeen. Jos haluat muuttaa asetuksia, valitse vaihtoehto debuggerin päävalikosta MultilinkCyclonPro > Debug Memory Map. Kuvassa näkyvä ikkuna. 12.5, a. Valitse tässä ikkunassa muistilohko 3 ja paina painiketta Muokkaa/Tiedot. Kuvassa näkyvässä uudessa ikkunassa. 12.5, b, valitse merkitty vaihtoehto. Sen avulla debuggeri voi päivittää muistiikkunan ajoittain.

Riisi. 12.5. Muuta virheenkorjausasetuksia päivittääksesi muistiikkunan sisällön säännöllisesti.