Codul programului este scopul principal al s. Cum se scriu programe de calculator

Scop

Codul sursă este fie folosit pentru a produce cod obiect, fie executat de un interpret. Modificările nu se fac niciodată codului obiect, ci doar codului sursă și apoi sunt convertite înapoi în cod obiect.

Un alt scop important al codului sursă este descrierea unui program. Pe baza textului programului, puteți reconstrui logica comportamentului acestuia. Comentariile sunt folosite pentru a face codul sursă mai ușor de înțeles. Există și instrumente care vă permit să obțineți automat documentația codului sursă - așa-numita. generatoare de documentație.

În plus, codul sursă are multe alte utilizări. Poate fi folosit ca instrument de predare; Programatorii începători pot considera că este util să examineze codul sursă existent pentru a învăța tehnicile și metodologia de programare. De asemenea, este folosit ca instrument de comunicare între programatori experimentați datorită naturii sale concise și lipsite de ambiguitate. Partajarea codului între dezvoltatori este adesea citată ca un factor care contribuie la îmbunătățirea experienței programatorului.

Programatorii mută adesea codul sursă (în module, ca atare sau cu adaptări) de la un proiect la altul, ceea ce se numește reutilizare a codului.

Codul sursă este o componentă critică pentru procesul de portare a software-ului pe alte platforme. Fără codul sursă al oricărei piese de software, portarea este fie prea dificilă, fie complet imposibilă.

Organizare

Codul sursă al unei părți a software-ului (modul, componentă) poate consta din unul sau mai multe fișiere. Codul programului nu este neapărat scris într-un singur limbaj de programare. De exemplu, adesea programele scrise în limbaj C, în scopuri de optimizare, conțin inserții de cod în limbaj de asamblare. De asemenea, este posibil ca unele componente sau părți ale unui program să fie scrise în limbi diferite și apoi asamblate într-un singur modul executabil folosind o tehnică cunoscută sub numele de linking library ( legarea bibliotecii).

Software-ul complex necesită zeci sau chiar sute de fișiere de cod sursă pentru a fi construite. În astfel de cazuri, pentru a simplifica construirea, sunt utilizate de obicei fișiere de proiect care conțin o descriere a dependențelor dintre fișierele de cod sursă și descriu procesul de construire. Aceste fișiere pot conține, de asemenea, opțiuni pentru compilator și mediul de proiectare. Pentru diferite medii de proiectare pot fi utilizate diferite fișiere de proiect, iar în unele medii aceste fișiere pot fi într-un format text, potrivit pentru editarea directă de către programator folosind editori de text universale în alte medii, sunt acceptate formate speciale, iar crearea și modificarea fișierelor se realizează cu ajutorul programelor de instrumente speciale. Fișierele de proiect sunt de obicei incluse în termenul „cod sursă”. Marea majoritate a mediilor de limbaj moderne necesită utilizarea fișierelor de proiect, indiferent de complexitatea celuilalt cod sursă inclus în proiect. Adesea, codul sursă se referă și la fișierele de resurse care conțin diverse date, de exemplu, imagini grafice necesare pentru a construi un program.

Pentru a facilita lucrul cu codul sursă, pentru colaborarea la cod de către o echipă de programatori, se folosesc sisteme de control al versiunilor.

Calitate

Spre deosebire de oameni, nu există un cod „bine scris” sau „prost scris” pentru un computer. Dar modul în care este scris codul poate influența foarte mult procesul de întreținere a software-ului. Calitatea codului sursă poate fi apreciată după următorii parametri:

  • lizibilitatea codului (inclusiv prezența comentariilor la cod);
  • ușurință de suport, testare, depanare și corectare a erorilor, modificare și portare;
  • utilizarea economică a resurselor - memorie, procesor, spațiu pe disc;
  • absența comentariilor emise de compilator;
  • absența „gunoaielor” - variabile neutilizate, blocuri de cod inaccesibile, comentarii învechite inutile etc.;
  • tratarea adecvată a erorilor;
  • portabilitate - capacitatea de a utiliza un procesor (compilator, interpret, traducător) de versiuni diferite, sau chiar sisteme de operare diferite;
  • posibilitatea de internaționalizare a interfeței.

Cod sursă neexecutabil

Licențele copyleft pentru software gratuit necesită distribuirea codului sursă. Aceste licențe sunt adesea folosite și pentru lucrări care nu sunt software - de exemplu, documentație, imagini, fișiere de date pentru jocuri pe calculator.

În astfel de cazuri, codul sursă este considerat a fi forma lucrării care este preferată pentru editare. În alte licențe decât software, aceasta poate fi denumită și versiunea „format transparent”. Acesta ar putea fi, de exemplu:

  • pentru un fișier comprimat cu pierdere de date - versiunea fără pierderi;
  • pentru redarea unei imagini vectoriale sau a unui model tridimensional - respectiv, versiunea vectorială și modelul;
  • pentru o imagine text - același text în format text;
  • pentru muzică - un fișier în formatul intern al editorului muzical;
  • și, în sfârșit, fișierul în sine, dacă îndeplinește condițiile specificate sau dacă pur și simplu nu a existat o versiune mai convenabilă.

Vezi de asemenea


Fundația Wikimedia.

2010.

    Vedeți ce este „Codul sursă” în alte dicționare: Materiale sursă ale filmului: negativ, contratipărire, copie de control a filmului, fonograme magnetice originale de dublare muzicală, zgomot, master video fonogramă, CD etc. Sinonime: textul este fie executat direct de interpret, fie... ...

    Dicţionar financiar Un text scris de om al unui program de calculator în orice limbaj de programare. Akademik.ru. 2001...

    Dicţionar de termeni de afaceri cod sursă - - Subiecte telecomunicații, concepte de bază Cod sursă EN...

    Dicţionar de termeni de afaceri Ghidul tehnic al traducătorului - 3.1.13 cod sursă: un program de calculator exprimat într-o formă care poate fi citită de om (limbaj de programare) care este tradus în formă care poate fi citită de mașină (codul obiect) înainte de a putea fi testat cu... ...

    Dicţionar de termeni de afaceri Dicționar-carte de referință de termeni ai documentației normative și tehnice - limba textului sursă...

    Dicționar de traducere explicativă

    Cod sursă: Codul sursă este textul scris de om al unui program de calculator. Tehno-thriller cu cod sursă regizat de Duncan Jones ... Wikipedia

    Acest termen are alte semnificații, vezi codul sursă. Cod sursă Cod sursă ... Wikipedia

    Acest articol nu are link-uri către surse de informații. Informațiile trebuie să fie verificabile, altfel pot fi puse sub semnul întrebării și șterse. Poți... Wikipedia

    Logo-ul Open Source Initiative (OSI) Software-ul cu sursă deschisă este un software cu sursă deschisă. Codul sursă al programelor create este deschis, adică disponibil pentru vizualizare și modificare. Aceasta este... ... Wikipedia- 48) program sursă (cod sursă) o reprezentare corespunzătoare a unuia sau mai multor procese care pot fi convertite de un sistem de programare într-o formă executabilă de hardware (cod obiect sau limbaj obiect) (categorii 6, 7 și 9); ... Terminologie oficială

15 Reguli pentru scrierea codului de calitate

Există nenumărate moduri de a scrie cod prost. Din fericire, pentru a ajunge la nivelul codului de calitate, trebuie doar să urmați 15 reguli. Urmărirea lor nu te va face un maestru, dar îți va permite să-l imiti în mod convingător.

Regula 1: Urmați standardele de codare.

Fiecare limbaj de programare are propriul standard de formatare a codului, care spune cum să indentați, unde să puneți spații și paranteze, cum să denumiți obiectele, cum să comentați codul etc.

De exemplu, în această bucată de cod, conform standardului, există 12 erori:

Pentru(i=0;i

Studiați standardul cu atenție, învățați elementele de bază pe de rost, urmați regulile precum poruncile și programele dvs. vor fi mai bune decât cele mai multe scrise de absolvenți de facultate.

Multe organizații își adaptează standardele pentru a se potrivi nevoilor lor specifice. De exemplu, Google a dezvoltat standarde pentru mai mult de 12 limbaje de programare. Sunt bine gândite, așa că verificați-le dacă aveți nevoie de ajutor pentru programare cu Google. Standardele includ chiar setări ale editorului pentru a vă ajuta să rămâneți în stil și instrumente speciale pentru a verifica codul dvs. este în concordanță cu stilul respectiv. Folosește-le.

Regula 2: Dați nume descriptive.

Limitați de mașini de teletip lente și greoaie, programatorii din antichitate foloseau contracte pentru nume de variabile și proceduri pentru a economisi timp, apăsări de taste, cerneală și hârtie. Această cultură este prezentă în unele comunități de dragul menținerii compatibilității cu versiunile inverse. Luați, de exemplu, funcția C wcscspn, care rupe limbajul (interval de completare a șirurilor de caractere). Dar această abordare nu este aplicabilă în codul modern.

Utilizați nume lungi și descriptive, cum ar fi complementSpanLength, pentru a vă ajuta pe dvs. și colegii să înțelegeți codul în viitor. Excepțiile sunt câteva variabile importante utilizate în corpul unei metode, cum ar fi iteratoarele de buclă, parametrii, valorile temporare sau rezultatele execuției.

Este mult mai important să te gândești mult înainte de a numi ceva. Numele este corect? Ați vrut să spuneți cel mai mare preț sau cel mai bun preț? Este numele suficient de specific pentru a evita utilizarea lui în alte contexte pentru obiecte similare? Nu ar fi mai bine să apelați metoda getBestPrice în loc de getBest? Se potrivește mai bine decât alte nume similare? Dacă aveți o metodă ReadEventLog, nu ar trebui să apelați un alt NetErrorLogRead. Dacă denumiți o funcție, numele descrie valoarea returnată?

În sfârșit, câteva reguli simple de denumire. Numele de clase și de tip trebuie să fie substantive. Numele metodei trebuie să conțină un verb. Dacă o metodă determină dacă unele informații despre un obiect sunt adevărate sau false, numele acesteia trebuie să înceapă cu „este”. Metodele care returnează proprietățile obiectelor trebuie să înceapă cu „get”, iar metodele care stabilesc valorile proprietăților trebuie să înceapă cu „set”.

Regula 3: Comentariu și document.

Începeți fiecare metodă și procedură cu o descriere într-un comentariu a ceea ce face metoda sau procedura, parametrii, valoarea returnată și posibilele erori și excepții. Descrieți în comentarii rolul fiecărui fișier și clasă, conținutul fiecărui câmp de clasă și pașii principali ai codului complex. Scrieți comentarii pe măsură ce dezvoltați codul. Dacă crezi că le vei scrie mai târziu, te înșeli singur.

În plus, asigurați-vă că aplicația sau biblioteca dvs. are un manual care explică ce face codul dvs., definește dependențele acestuia și oferă instrucțiuni pentru construirea, testarea, instalarea și utilizarea acestuia. Documentul trebuie să fie scurt și convenabil; un simplu fișier README este adesea suficient.

Regula 4. Nu te repeta.

Nu copiați și lipiți niciodată cod. În schimb, izolați partea comună într-o metodă sau clasă (sau macro, dacă este necesar) și utilizați-o cu parametrii corespunzători. Evitați utilizarea datelor și a fragmentelor de cod similare. De asemenea, utilizați următoarele tehnici:

  • Generați referințe API din comentarii folosind Javadoc și Doxygen.
  • Generarea automată de teste unitare bazate pe adnotări sau convenții de denumire.
  • Generați PDF și HTML dintr-o singură sursă etichetată.
  • Preluarea structurii clasei din baza de date (sau invers).

Regula 5: Verificați erorile și răspundeți la ele.

Metodele pot returna simptome de eroare sau pot arunca excepții. Procesați-le. Nu te baza pe faptul că discul nu se va umple niciodată, fișierul tău de configurare va fi mereu acolo, aplicația ta va rula cu toate drepturile de care are nevoie, cererile de alocare a memoriei vor reuși întotdeauna sau că conexiunea ta nu va eșua niciodată. Da, o bună gestionare a erorilor este greu de scris și face codul mai lung și mai greu de citit. Dar ignorarea erorilor pur și simplu mătură problema sub covor, unde un utilizator nebănuit o va descoperi într-o zi.

Regula 6: Împărțiți codul în părți scurte, discrete.

Fiecare metodă, funcție sau bloc de cod ar trebui să se încadreze într-o fereastră obișnuită a ecranului (25-50 de linii). Dacă este mai lung, împărțiți-l în bucăți mai scurte. Chiar și în cadrul unei metode, împărțiți codul lung în blocuri, a căror esență o puteți descrie într-un comentariu la începutul fiecărui bloc.

Mai mult, fiecare clasă, modul, fișier sau proces trebuie să îndeplinească un anumit tip de sarcină. Dacă o bucată de cod îndeplinește sarcini complet diferite, atunci împărțiți-o în consecință.

Regula 7. Utilizați API-uri cadru și biblioteci terțe.

Explorați ce caracteristici sunt disponibile prin intermediul API-ului cadrului dvs. și, de asemenea, ce pot face bibliotecile mature terțe. Dacă bibliotecile sunt acceptate de managerul de pachete de sistem, acestea vor fi probabil o alegere bună. Folosește un cod care descurajează dorința de a reinventa roata (și unul pătrat inutil).

Regula 8: Nu supraproiectați.

Proiectați doar ceea ce este relevant acum. Puteți face codul suficient de generic pentru a sprijini dezvoltarea viitoare, atâta timp cât nu devine prea complex. Nu creați clase parametrizate, fabrici, ierarhii profunde și interfețe ascunse pentru a rezolva probleme care nici măcar nu există - nu puteți ghici ce se va întâmpla mâine. Pe de altă parte, atunci când structura codului nu se potrivește sarcinii, nu ezitați să-l refactorizați.

Regula 9: Fii consecvent.

Fă aceleași lucruri în același mod. Dacă dezvoltați o metodă a cărei funcționalitate este similară cu cea a uneia existente, utilizați un nume similar, o ordine similară a parametrilor și o structură similară a corpului. Același lucru este valabil și pentru clase. Creați câmpuri și metode similare, oferiți-le interfețe similare și potriviți nume noi cu cele existente în clase similare.

Codul dumneavoastră trebuie să respecte convențiile cadrului dumneavoastră. De exemplu, este o bună practică să faceți gamele semideschise: închise (inclusiv) în stânga (la începutul intervalului) și deschise (exclusiv) în dreapta (la sfârșit). Dacă nu există acorduri pentru un anumit caz, atunci faceți o alegere și rămâneți la ea cu fanatic.

Regula 10: Evitați problemele de securitate.

Codul modern rareori funcționează izolat. Are un risc iminent de a deveni o țintă de atac. Nu trebuie să vină de pe Internet; atacul poate avea loc prin datele de intrare ale aplicației dvs. În funcție de limbajul și domeniul dvs. de programare, este posibil să aveți nevoie să vă faceți griji cu privire la depășirile de buffer-uri, scripturi între site-uri, injecția SQL și alte probleme similare. Studiați aceste probleme și evitați-le în codul dvs. Nu este greu.

Regula 11: Utilizați structuri de date și algoritmi eficienți.

Codul simplu este adesea mai ușor de întreținut decât același cod, dar modificat pentru eficiență. Din fericire, puteți combina întreținerea și eficiența folosind structurile de date și algoritmii pe care cadrul dvs. vă oferă. Folosiți harta, setul, vectorul și algoritmii care funcționează cu ele. Acest lucru va face codul dvs. mai curat, mai rapid, mai scalabil și mai eficient în memorie. De exemplu, dacă stocați o mie de valori într-o mulțime sortată, operația de intersecție va găsi elemente comune cu un alt set în același număr de operații, mai degrabă decât un milion de comparații.

Regula 12. Utilizați teste unitare.

Complexitatea software-ului modern îl face mai costisitor de instalat și mai dificil de testat. O abordare productivă ar fi să însoțiți fiecare bucată de cod cu teste care verifică corectitudinea funcționării acestuia. Această abordare simplifică depanarea deoarece permite detectarea mai devreme a erorilor. Testarea unitară este necesară atunci când programați în limbaje cu tastare dinamică, cum ar fi Python și JavaScript, deoarece acestea captează orice erori numai în timpul execuției, în timp ce limbajele tastate static, cum ar fi Java, C# și C++, pot prinde unele dintre ele în timpul execuției timp. Testarea unitară vă permite, de asemenea, să vă refactorizați codul cu încredere. Puteți utiliza XUnit pentru a facilita scrierea testelor și pentru a automatiza execuția acestora.

Regula 13: Păstrați codul portabil.

Cu excepția cazului în care aveți un motiv anume, nu utilizați funcționalitatea care este disponibilă numai pe o anumită platformă. Nu vă bazați pe anumite tipuri de date (cum ar fi numere întregi, indicatori și marcaje temporale) pentru a avea o anumită lungime (de exemplu, 32 de biți), deoarece acest parametru diferă pe platforme diferite. Păstrați mesajele programului separat de cod și nu codificați parametrii specifici culturii (cum ar fi separatorii zecimali sau formatele de dată). Sunt necesare convenții pentru a se asigura că codul poate rula în diferite țări, astfel încât localizarea să fie cât mai nedureroasă posibil.

Regula 14: Fă-ți codul compus.

O comandă simplă ar trebui să vă asamblate codul într-o formă pregătită pentru distribuție. Comanda ar trebui să vă permită să construiți și să rulați rapid testele necesare. Pentru a atinge acest obiectiv, utilizați instrumente automate de construcție precum Make, Apache Maven sau Ant. În mod ideal, ar trebui să instalați un sistem de integrare care vă va verifica, construi și testa codul ori de câte ori se schimbă.

Regula 15: Pune totul în controlul versiunilor.

Toate elementele dvs. - cod, documentație, surse de instrumente, scripturi de construcție, date de testare - ar trebui să fie în controlul versiunii. Git și GitHub fac această sarcină ieftină și fără probleme. Dar multe alte instrumente și servicii puternice vă sunt, de asemenea, disponibile. Ar trebui să puteți construi și testa programul pe un sistem configurat pur și simplu descărcându-l din depozit.

Concluzie.

Făcând aceste 15 reguli parte din practica dumneavoastră zilnică, veți ajunge să creați un cod care este mai ușor de citit, care este bine testat, care are mai multe șanse să ruleze corect și care este mult mai ușor de schimbat când va veni momentul. De asemenea, te vei scuti pe tine și pe utilizatorii tăi de multe dureri de cap.

Aceasta este o parte introductivă dedicată fundamentelor teoretice ale programării. Cititorul se poate familiariza cu acesta și apoi trece la studiul în practică a programării (linkuri la începutul și la sfârșitul acestui material), poate apela imediat la exerciții practice sau poate continua să se familiarizeze cu teoria dezvoltării software, alegând întrebări care îl interesează din lista de mai sus. În ceea ce privește acest articol, iată secțiunile sale principale:

Sfat: Când citiți mai multe materiale, nu încercați să vă amintiți toți termenii și definițiile care apar pe parcursul poveștii. Totul se va pune la punct în timp, mai ales că hipertextul paginilor de internet este bun pentru că unde este necesar se găsesc link-uri către o prezentare detaliată a materialului. Poți oricând să te întorci la pagina dorită și să o faci exact atunci când simți o lipsă de cunoștințe. Dacă vreo secțiune vă este greu de înțeles, omiteți-o. Dacă nu reveniți la el în viitor, aceasta înseamnă că s-a dovedit a fi inutil pentru dvs. în procesul de învățare a elementelor de bază ale programării.

Ce este un algoritm, programare și pseudocod

Să începem prin a defini ce este un algoritm. Algoritm este ordinea acțiunilor care trebuie efectuate pentru a rezolva o anumită problemă. Conceptul de algoritm nu este asociat doar cu programele executate pe , așa că răspunsul la întrebarea „cine trebuie să execute” poate fi oricine sau orice: o persoană, un robot, tehnologie informatică etc. Algoritm– aceasta este o instrucțiune sau un ghid sau, în sfârșit, doar program de actiune. În acest caz, este o descriere a algoritmului prin intermediul , ale căror construcții le poate procesa computerul. Sau este pur și simplu procesul de scriere a textului unui program de calculator. În această interpretare, programarea este sinonimă cu proces de codificare. De ce am vorbit despre interpretări? Faptul este că dezvoltatorii de software sunt foarte pasionați de ceea ce fac și pot fi extrem de nemulțumiți atunci când munca lor este redusă la doar procesul de codare într-un anumit limbaj de programare. În sine nu este doar codificare, ci și etapa preliminară de proiectare, precum și etapele ulterioare și întreținerea. Prin programare se înțelege adesea procesul de creare a unui program de calculator în ansamblu, inclusiv dezvoltarea unui algoritm, iar codarea este traducerea unui algoritm deja dezvoltat într-un limbaj ușor de înțeles. obiect de codificare(adică un computer sau orice alt dispozitiv care funcționează conform unui program specificat de cineva).

Deci, algoritmul pentru orice problemă, descris în oricare limbaj algoritmic(limbaj de programare procedural), la o primă aproximare apare ca o secvență de instrucțiuni sau operatori. Un operator poate fi simplu sau compus. Simplu operator- acesta este atomic unitate limbaj de programare. Operatorii simpli includ (definirea numelui și tipului unei variabile), (atribuirea unei valori unei variabile), operațiuni de intrare și ieșire etc.

Variabilă (în programare) este o zonă denumită a RAM destinată stocării temporare a unei porțiuni de date procesate de un program de calculator. O variabilă se caracterizează prin dimensiunea memoriei pe care o ocupă și tipul acesteia, ceea ce determină modul în care acea memorie este interpretată de computer. Tipul unei variabile poate fi simplu sau complex (complex). Tipurile simple includ tipuri numerice, caractere și logice. Un tip complex este o colecție de tipuri simple și/sau alte tipuri compuse.

Instrucțiunile compuse sunt folosite pentru a organiza alte instrucțiuni într-o secvență și pentru a controla fluxul de execuție a programului. Operatorii compuși includ (repetarea unei secvențe de operatori), etc. și nu sunt operatori înșiși. Ele pot fi argumente pentru valori variabile sau criterii pentru executarea buclelor și instrucțiunilor condiționate. O parte a expresiilor matematice și logice poate fi .

Rezultate intermediare: Cel mai simplu program de calculator este o succesiune de operatori (instrucțiuni de program), dintre care unii modifică variabile, în timp ce alții controlează execuția programului (bucle, instrucțiuni condiționale), pe baza condițiilor specificate de expresii logice și aritmetice.

Dacă oricare dintre acestea ridică întrebări, atunci vă sugerez să urmați oricare dintre linkurile de mai sus și să vă familiarizați cu constructele limbajului de programare procedural pe care l-am descris mai detaliat.

Anterior, algoritmii, înainte de a fi implementați în , erau prezentați sub forma . Astăzi, mi se pare, organigramele clasice sunt folosite destul de rar (în școli sau în diferite cursuri despre bazele programării). De asemenea, diagramele de flux sunt folosite pentru a descrie procesele de afaceri împreună cu diagrame, dar acest lucru se aplică deja etapelor de proiectare macro. În practica mea, folosesc foarte rar forme intermediare de descriere a algoritmilor, dar dacă apare o astfel de nevoie, o fac folosind pseudocod. Pseudocod- Asta pseudo limbaj de programare, pentru care nu există standarde pentru sintaxă. Pseudocodul este lipsit de detalii nesemnificative pentru înțelegerea esenței algoritmului, fără de care este imposibil să scrieți programe în limbaje de programare reale. Singura scopul pseudocodului este de a formaliza descrierea algoritmului. Problemele ale căror soluții sunt descrise în pseudocod sunt foarte ușor transferate în orice limbaj de programare, deoarece pseudocodul este un limbaj de programare cu singura diferență că nu există un compilator pentru acesta, iar singurul interpret pentru acesta este creierul uman. Vă voi spune ce sunt un compilator și un interpret la sfârșitul acestui material.

Exemple de algoritmi în pseudocod și sub formă de organigrame

Iată un exemplu de descriere a algoritmului pentru problema împărțirii unui număr la altul, realizat în pseudocod:

A: TIP INTEGER INTRARE(A) B: TIP INTEGER INTRARE(B) DACĂ B=0 THEN IEȘIRE(„EROARE: DIVISIONARE CU 0!”) IEȘIRE SFÂRȘIT DACĂ C: TIP REAL C = IEȘIRE A / B (C)

Mediu de dezvoltare integrat (IDE) – un set de instrumente software care oferă utilizatorului instrumente pentru scrierea codului programului, căutarea și evidențierea erorilor de sintaxă din acesta și rularea aplicației în modul de depanare. Mediul de dezvoltare integrat include un compilator, linker, depanator, profiler și alte componente. Cel mai popular mediu de dezvoltare software în limbajele de programare C#, VB.NET și C++ este, iar în scopuri educaționale vă sugerez să utilizați următoarele.

Depanator este un instrument IDE care vă permite să executați un program pas cu pas și să urmăriți valorile variabilelor la fiecare pas definit de puncte de întrerupere sau puncte de întrerupere.

Profiler – un instrument IDE folosit pentru a optimiza codul programului în ceea ce privește viteza de execuție și cantitatea de RAM pe care o ocupă. Folosind un profiler, puteți colecta statistici despre care parte a codului este executată cel mai des și cât timp și resurse cheltuiesc computerul pentru execuția sa. Pe baza acestor statistici, puteți identifica blocajele programului dvs. și vă puteți direcționa eforturile pentru a le optimiza.

Limbajul de programare – un limbaj formal reprezentat de un set de instructiuni (operatori) cu ajutorul caruia se scriu programe de calculator cu respectarea unei anumite sintaxe. Cu alte cuvinte, un limbaj de programare este instrumentul principal pentru implementarea unui algoritm pentru o anumită sarcină pe un computer.

Codul mașinii - un sistem de comenzi pe care procesorul computerului îl înțelege „fără traducere”.

Limbaje de programare de nivel înalt și scăzut – clasificarea limbajelor de programare în funcție de gradul de ușurință al utilizării lor de către oameni pentru rezolvarea problemelor aplicate (limbaje de nivel înalt) sau în funcție de gradul de proximitate a acestora față de codul mașină (limbaje de nivel scăzut).

Compilator – o aplicație care se ocupă de procesul de compilare - traducerea unui program (traducerea codului de program) scris într-un limbaj de programare de nivel înalt într-un limbaj de nivel scăzut sau în cod mașină. Compilarea într-un limbaj de nivel scăzut înseamnă cel mai adesea traducerea unui program în limbaj de asamblare pentru a ajusta blocajele individuale înainte de a-l traduce în final în codul mașinii. Un exemplu de program în asamblare poate fi văzut.

Modul obiect – un fișier care conține rezultatul muncii compilatorului, și anume codul mașină însuși cu link-uri către alte module obiect, dacă programul este complex și constă din multe componente.

Linker – o aplicație care intră în procesul de creare a unui modul executabil după compilator. Dacă rezultatul compilării sunt mai multe module obiect, atunci linkerul le găsește pe toate și construiește un modul executabil din ele.

Modul executabil – un fișier care conține programul exact în forma pe care o poate procesa bootloader-ul unui anumit sistem de operare. Cel mai adesea acestea sunt fișiere cu extensia exe sau dll.

Încărcător - parte a sistemului de operare care creează unul separat pentru program, încarcă datele fișierului executabil în RAM (în zona RAM alocată procesului), inițializează registrele procesorului și începe procesul. Din acest moment programul începe să se execute.

Interpret – un program care execută codul programului pas cu pas, traducând în cod mașină doar acea parte a acestuia care trebuie executată la un anumit moment în timp. Interpretul procesează programul linie cu linie. Diferența dintre un compilator și un interpret este că compilatorul traduce întregul program în cod mașină deodată, creând unul sau mai multe module obiect, iar interpretul, după ce a tradus doar fragmentul programului de care are nevoie, execută imediat acest fragment. Astfel, unii interpreți sunt un compilator, un linker și un încărcător reunite într-unul singur. Un exemplu de interpret este o unitate de procesare într-un browser de internet.

Lasă-mă să termin cu teoria și să trec la practică. Voi începe cu asta.

Unii pentru distracție, alții pentru a dovedi existența sau a infirma o ipoteză, alții pentru a-și exercita creierul (călătorind pe suprafața unei sticle Klein sau în spațiu cu patru dimensiuni), dar sute de oameni au creat limbaje de programare „ezoterice”. Am trecut prin aproximativ 150 dintre aceste limbi și nu voi mai fi niciodată la fel.

„Argh!”, „Oof!”, „2-ill”, „Nhohnhehr”, „Noit o" mnain gelb”, „DZZZZ”, „Ypsilax”, „YABALL”, naiba - acestea sunt vrăji, poezia este doar nume ... sub catom - exemple de cod în cele mai atrăgătoare limbaje de programare.

gaura iepurelui este adâncă.

INTERCAL (Turing-complet)



Don Woods și Jim Lyon

Unul dintre cele mai vechi limbaje de programare ezoterice. Potrivit creatorilor, numele său înseamnă „Limbajul compilatorului fără acronim pronunțabil”. Limbajul a fost creat în 1972 de studenții Don Woods și James M. Lyon ca o parodie a limbajelor de programare existente și a gimnasticii mentale.

Salut Lume

Fiecărei comenzi de program i se poate da o probabilitate cu care va fi executată la pornirea programului. În plus, există comenzi care blochează executarea comenzilor ulterioare de un anumit tip sau modificări ale variabilelor.

Salut Lume!

// „Hello World” de Stephen McGreal.
// Rețineți că opiniile exprimate în acest cod sursă nu coincid neapărat cu cele ale

Gr34t l33tN3$$?
M3h...
iT 41n"t s0 7rIckY.

L33t sP33k este U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh.
1f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE!!! ;p
w4r3Z c0ll3cT10n2 r 7eh l3Et3r!

Qu4k3 cL4nS r 7eh bE5t tH1ng 1n teh 3nTIr3 w0rlD!!!
g4m3s wh3r3 u g3t la 5h00t ppl r 70tAl1_y w1cK1d!!!
I"M teh fr4GM4ster aN I"lL t0t41_1Ly wipE the phr34k1ng fL00r ***j3d1 5tylE*** WWITH Y0uR h1dE!!! L0L0L0L!
t3lEphR4gG1nG l4m3rs cu mY m8tes r34lLy k1kK$ A$$

L33t hAxX0r$ CrE4t3 u8er- k3wL 5tUff ca n34t pR0gR4mm1nG LANGURI$…
s0m3tIm3$ teh l4nGu4gES l00k doar l1k3 rE41_ 0neS 7o mAkE ppl Th1nk th3y"r3 ju$t n0rMal lEE7 5pEEk dar th3y"re 5ecRetLy c0dE!!!
n080DY sub5tAnd$ l33t SPeaK 4p4rT fr0m j3d1!!!
50mE kId 0n A me$$4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 0r mAyb3 ju5t sh0w 7eh wAy5 l33t E mL0d l33t cL0d!!! el i5 și u8ER!!!
1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
1t 3v3n MiTe jUs7 s4y „H3LL0 W0RLD!!!” u ju5t can"T gu3s5.
tH3r3"s n3v3r any p0iNt l00King sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s what th1s 1s!!!

5uxX0r5!!!L0L0L0L0L!!!

ArnoldC

Limbajul de programare Terminator.

Salut Lume!

Acasă » Ce este codul programului, aplicațiile, erorile

Orice software sau serviciu online, cum ar fi Word, pentru Windows, WhatsApp sau un browser pe care sute de milioane de oameni îl folosesc zilnic, într-un fel sau altul, include instrucțiuni speciale. Sau un cod de program special pe care aparatul îl înțelege și îi spune ce să facă sau să nu facă. Sau cum să răspundeți corect la acțiunile utilizatorului. Ce cod de program va fi discutat în acest articol

Codul programului este text executat într-un limbaj special care este înțeles de o mașină. Poate fi efectuată direct în textul traducătorului sau transferată într-o formă specială de către compilator.

Codul sursă poate consta din mai multe fișiere. Toate trebuie să aibă același format. Textul programului conținut în acestea trebuie să fie scris în aceeași limbă. Cu toate acestea, pot exista unele excepții. De exemplu, în dezvoltarea web, un fișier de pagină poate conține mai multe limbaje și standarde de programare diferite. În funcție de complexitatea proiectului, vă puteți imagina astfel de limbaje și tehnologii precum PHP, HTML și javascript, Java și altele.

Sistemele software complexe pot necesita un număr mare de fișiere, care poate fi de până la sute. Pentru a colabora la proiecte atât de mari, programatorii folosesc foarte des sisteme de control al versiunilor. Ele vă permit să lucrați simultan cu mai multe copii de cod sursă, care la un anumit stadiu de dezvoltare pot fi combinate într-una comună.

Calitatea codului

Computerul nu este capabil să înțeleagă cum este scris codul pentru el, bine sau rău. Dacă este sănătos și fără erori, mașina o va rula oricum. Codul greșit poate complica sarcinile de întreținere a software-ului. Acest lucru este valabil mai ales pentru proiectele mari. De regulă, codul de înaltă calitate este caracterizat de mai mulți parametri: Lizibilitatea codului. O singură privire ar trebui să fie suficientă pentru a înțelege în general că o bucată de cod este în curs de implementare Prezența unor comentarii clare și succinte. Această setare afectează în mod semnificativ lizibilitatea, ușurința de depanare, testarea, întreținerea și depanarea codului programului. Organizați acest lucru în așa fel încât programul să utilizeze mai puține resurse de sistem, cum ar fi memoria, timpul procesorului și spațiul pe disc. Adică variabile neutilizate sau blocuri de cod care nu ajung niciodată în programul de control

Pe lângă programele utile care pot dăuna sistemului sau chiar hardware-ului. De obicei, un astfel de cod este scris de persoane care sunt interesate de unele beneficii din procesul actual. De exemplu, programele care pot fura informații personale de la utilizatorii de computere. Acestea pot fi un număr de card, date de pașaport sau orice alte informații confidențiale. Alții pot afecta pur și simplu sistemul, provocând astfel blocări și împiedicând funcționalitatea completă. Sfaturi pentru scrierea unui cod bun

Jeff Vogel, un programator de multă vreme, a împărtășit câteva sfaturi pentru predarea unui cod bun începătorilor.

În special, el sugerează să comentați întotdeauna codul dvs. Ce este o recenzie? Aceasta este o descriere clară și concisă a ceea ce se întâmplă în acea linie de cod sau funcție. Faptul că dezvoltarea unui anumit program poate fi amânată cu o lună sau chiar suspendată pentru ceva timp. Revenind la lucru la un proiect timp de câteva luni, chiar și unui programator experimentat îi va fi greu să înțeleagă programul. Dar comentariile detaliate pot restabili lanțul de evenimente și comportament.

În plus, el recomandă utilizarea variabilelor globale cât mai des posibil. Acest lucru se întâmplă deoarece atunci când modificați codul programului, trebuie să ajustați valoarea variabilei într-un singur loc. Folosind valoarea unei funcții sau proceduri, ei vor afla imediat despre aceasta și vor lucra cu nume de variabile și detectarea erorilor

Numele corect al variabilelor va ajuta, de asemenea, la reducerea semnificativă a timpului petrecut studiind codul sursă al programului, chiar dacă codul este scris de dvs. Adică, codul bun este text în care variabilele și funcțiile au nume, poți înțelege ce fac sau ce stochează. În acest caz, ar trebui să încercați să nu utilizați nume lungi de variabile.

Este foarte important să acordați o mare atenție corectării în timp util a erorilor. Care este codul programului care s-a executat perfect? Acest cod nu are nicio eroare. Adică, orice ramificare a buclei sau modificare a unei variabile, sau chiar orice acțiune neașteptată a utilizatorului, va duce întotdeauna la rezultatul așteptat. Acest lucru se realizează prin testarea produsului software pe mai multe cazuri.

Detectarea erorilor de cod, sau mai degrabă, predicția lor este posibilă în etapa de proiectare a programului. Verificarea codului pentru diferite condiții și posibile excepții va ajuta la gestionarea programului de curs.

Optimizarea este necesară pentru a scrie un program funcțional care va utiliza eficient resursele computerului și pentru a evita erorile în execuția codului programului. Care este programul optim? Acesta este un produs care poate îndeplini toate funcțiile menționate, este silentios și economic.

Aproape întotdeauna, optimizarea pentru funcționarea stabilă a programului poate fi realizată numai prin efectuarea mai multor teste pe platforme diferite și în condiții diferite. Dacă un program începe să se comporte imprevizibil, trebuie să determinați ceea ce îl cauzează și să eliminați sau să deturnați procesul

Ce este un cod? Cu cuvinte simple, este un set de instrucțiuni și concepte pentru un computer. Conține text pe care un compilator sau un interpret îl poate transforma într-un limbaj care poate fi citit de mașină. Adică, în esență, codul este un intermediar între o persoană și un computer, ceea ce simplifică relația lor.

Coduri sursă pentru programe și jocuri

Surse Cea mai bună carte pentru un programator este codul sursă funcțional. Secțiunea include coduri sursă dintr-o mare varietate de direcții: coduri sursă pentru jocuri, programe de rețea și coduri sursă mici pentru revizuire. Codul sursă al site-ului este scris în limbajele de programare C++ și C#. Pentru a face un pas mic, dar important din punct de vedere algoritmic în dezvoltarea unei aplicații, este necesar să revizuiți o mulțime de literatură de specialitate și să testați multe variante de coduri de program. În astfel de cazuri, o sursă de lucru cu o soluție gata făcută este de mare ajutor. Cel mai adesea, nu este nevoie să analizați complet codurile de program, este suficient să selectați doar liniile necesare. Sursele acestui site completează colecția de coduri sursă postate pe site-uri legate de programare. Fiecare linie importantă de cod este însoțită de comentarii detaliate.

Programe Această secțiune include programe de aplicație care ajută la calcule, instrumente pentru webmasteri și utilitare utile pentru utilizatorii de computere. Aici puteți găsi și mini-jocuri pe computer, puzzle-uri, jocuri de cărți și altele. Cele mai multe dintre programele și jocurile site-ului își au sursele în secțiunea de cod sursă. După mici modificări, codul sursă poate fi folosit în diverse proiecte proprii. Sursele sunt comentate în detaliu pe paginile site-ului sau chiar în fișierele sursă.

Articole O selecție de articole despre programare - discuții ale programatorilor profesioniști și începători despre programare, limbaje de programare și alegerea instrumentelor de programare. Vorbește despre apariția științei programării, despre crearea limbajelor de programare și despre diferențele dintre acestea. În articole puteți găsi discuții interesante de la studenți ai universităților tehnice și programatori începători.

Software-ul licențiat Când dezvoltați programe sau începeți programare, este imposibil să faceți fără software specializat. La un anumit nivel de experiență în programare, se determină domeniul de specialitate al cuiva, setul de software al propriului domn. Folosind programe piratate sau piratate pentru dezvoltarea ta, mai devreme sau mai târziu îți dai seama că este imposibil să faci fără un software licențiat care garantează funcționalitate completă fără probleme și programare confortabilă. În prezent, o mulțime de software profesional este oferit la prețuri rezonabile pentru dezvoltatorii privați și organizațiile mici de programare. Această secțiune oferă multe programe utile. Gama de oferte software licențiate include o cantitate imensă de software pentru dezvoltatorii de aplicații, programe de rețea, programatori web, programe de grafică pentru artiști-designeri și multe altele. Secțiunea conține și programe create pentru a asigura securitatea muncii tale pe computerele personale: antivirusuri, firewall-uri, firewall-uri, firewall-uri.

Cărți Pregătirea teoretică trebuie neapărat combinată cu munca practică și chiar precedă. Făcând o singură practică de programare, mai devreme sau mai târziu îți dai seama cât de jos este plafonul cunoștințelor tale. Aici ajută cărțile de la autori cu o vastă experiență de programare, de la autori care au trecut de la categoria programatorilor obișnuiți la categoria maeștrilor adevărați, care explică simplu și clar algoritmi de programare complexi. Mai mult, o carte pe hârtie nu poate fi înlocuită integral cu o carte electronică.

Conceptul de cod de program

Calitatea asimilării informațiilor citite pe hârtie este mult mai mare decât în ​​cazul în care aceeași carte este citită pe un display de computer. Secțiunea include un număr mare de cărți utile în informatică. Sunt oferite cele mai recente publicații cu conținut interesant și relevant. Aici puteți găsi literatură despre programare, programare pe Internet, crearea și întreținerea rețelelor de calculatoare, cărți despre crearea și procesarea sunetului și muzicii de computer, digitizarea videoclipurilor și crearea de filme acasă. Cărțile vă vor ajuta să învățați grafica pe computer.

Cod sursă(de obicei doar textul programului, engleză cod sursă) reprezintă orice set de instrucțiuni sau declarații scrise într-un limbaj de programare pentru computer și într-o formă care poate fi citită de o persoană. Codul sursă permite programatorului să comunice cu computerul folosind un set limitat de instrucțiuni.

Cod sursă scris în HTML folosind JavaScript

Codul sursă care reprezintă un program este de obicei conținut în unul sau mai multe fișiere text, uneori stocate în baze de date ca proceduri stocate și poate apărea, de asemenea, ca fragmente de cod tipărite în cărți sau alte suporturi de imprimare. O colecție mare de fișiere de cod sursă poate fi organizată într-un arbore de directoare, caz în care poate fi cunoscut și ca arborele codului sursă(engleză) arborele sursă) sau arborele de cod arborele de cod sursă etc.

Codul sursă al programului este un set de fișiere necesare pentru a converti dintr-o formă care poate fi citită de om într-o formă de cod executabil de computer.

12.3.2. Exemplu de cod

Există două direcții posibile pentru execuția codului: tradus în codul mașinii folosind un compilator conceput pentru un anumit arhitectura calculatoarelor, sau realizat direct pe text folosind un interpret.

Goluri

Codul sursă este folosit în primul rând ca intrare într-un proces care produce programe executabile (adică este compilat sau interpretat). De asemenea, este folosit ca mijloc de transfer de algoritmi între oameni (de exemplu, fragmente de cod în cărți). Portarea unui program pe alte platforme de computer fără cod brut este de obicei destul de dificilă. Deși opțiunile de portare fără coduri sursă sunt posibile, de exemplu, traducerea binară sau emularea platformei originale.

Licențiere

Instrumentele software și codul sursă care le însoțesc, se încadrează de obicei în una dintre cele două paradigme de licențiere: software cu sursă deschisă și software neliber (sau proprietar). În general, software-ul este deschide, dacă codul sursă poate fi folosit, distribuit, modificat și analizat în mod liber și proprietate, dacă codul sursă este păstrat secret sau este proprietate privată și accesul la acesta este limitat. Pentru a asigura secretul, sunt utilizate în primul rând prevederile diferitelor legi privind drepturile de autor, dar sunt adesea folosite și secretele comerciale și brevetele. În plus, distribuția programului vine de obicei cu un acord de licență (EULA), care interzice în primul rând decompilarea, ingineria inversă, analiza, editarea sau eludarea protecției la copiere. Tipuri de protecție a codului sursă (în plus față de compilarea tradițională în codul obiect includ criptarea codului, ofuscarea codului). ofuscarea codului) sau transformarea codului.

Calitate

Modul în care este scris un program poate avea consecințe foarte importante pentru întreținerea lui. Multe manuale de stil de programare insistă asupra importanței lizibilității, iar multe ghiduri se concentrează pe menținerea codului sursă al unui program, care include depanarea și actualizările. Alte priorități, cum ar fi viteza de execuție a programului și capacitatea de a compila un program pentru mai multe arhitecturi, fac adesea ca lizibilitatea codului să fie mai puțin importantă, deoarece calitate Codul depinde în întregime de scopul său.

Deoarece programarea a existat la scară industrială de zeci de ani, au fost dezvoltate standarde adecvate de formatare a codului. Unele standarde sunt formalizate, în timp ce altele sunt reguli nerostite. De exemplu, notația maghiară reglementează denumirea identificatorilor într-un program (deseori rezolvată prin emiterea unei convenții de denumire la nivel de întreprindere, alte standarde definesc reguli pentru aranjarea elementelor de sintaxă).

Cod sursă(Asemenea sursă, sau doar sursă, cod, engleză Cod) - un program de calculator sub formă de text în orice limbaj de programare. Codul sursă este fie tradus în cod executabil folosind un compilator conceput pentru un anumit arhitectura calculatoarelor, sau realizat direct din text folosind un interpret.

Scop

Codul sursă este fie folosit pentru a produce cod obiect, fie executat de un interpret. Modificările nu se fac niciodată codului obiect, ci doar codului sursă și apoi sunt convertite înapoi în cod obiect.

Un alt scop important al codului sursă este descrierea unui program. Pe baza textului programului, puteți reconstrui logica comportamentului acestuia. Comentariile sunt folosite pentru a face codul sursă mai ușor de înțeles. Există și instrumente care vă permit să obțineți automat documentația codului sursă - așa-numita. generatoare de documentație.

În plus, codul sursă are multe alte utilizări.

Cod program HTML

Poate fi folosit ca instrument de predare; Programatorii începători pot considera că este util să examineze codul sursă existent pentru a învăța tehnicile și metodologia de programare. De asemenea, este folosit ca instrument de comunicare între programatori experimentați, datorită naturii sale (ideal) concise și lipsite de ambiguitate. Partajarea codului între dezvoltatori este adesea citată ca un factor care contribuie la îmbunătățirea experienței programatorului.

Programatorii mută adesea codul sursă de la un proiect la altul, ceea ce se numește reutilizare a codului ( Reutilizarea software-ului).

Codul sursă este o componentă critică pentru procesul de portare a software-ului pe alte platforme. Fără codul sursă al oricărei piese de software, portarea este fie prea dificilă, fie complet imposibilă...

Organizare

Codul sursă al unei părți a software-ului (modul, componentă) poate consta din unul sau mai multe fișiere. Codul programului nu este neapărat scris într-un singur limbaj de programare. De exemplu, adesea programele scrise în C, în scopuri de optimizare, conțin inserții de cod în limbaj de asamblare. De asemenea, sunt posibile situații când unele componente sau părți ale programului sunt scrise în limbi diferite, cu asamblarea ulterioară într-un singur modul executabil folosind o tehnologie cunoscută sub numele de linking bibliotecă ( legarea bibliotecii).

Software-ul complex necesită zeci sau chiar sute de fișiere de cod sursă pentru a fi construite.

În astfel de cazuri, fișierele sunt de obicei folosite pentru a simplifica asamblarea Makefile, care conține o descriere a dependențelor dintre fișierele de cod sursă și descrie procesul de construire.

Pentru a facilita lucrul cu codul sursă, pentru colaborarea la cod de către o echipă de programatori, se folosesc sisteme de control al versiunilor.

Calitate

Spre deosebire de oameni, nu există un cod „bine scris” sau „prost scris” pentru un computer. Dar modul în care este scris codul poate influența foarte mult procesul de întreținere a software-ului. Calitatea codului sursă poate fi discutată în contextul următorilor parametri:

  • lizibilitatea codului
  • ușurință de asistență, testare, depanare și depanare, modificare și portare
  • dificultate mică
  • utilizare redusă a resurselor - memorie, procesor, spațiu pe disc
  • fără comentarii la compilarea programului