Commento (informatica)

Codice Java con un commento introduttivo

Il commento, nell'ambito dei linguaggi di programmazione, è una sequenza delimitata di caratteri nel codice sorgente che non risulta nell'algoritmo risolutivo codificato e che solitamente ha lo scopo di descriverne le caratteristiche funzionali, ovvero di spiegare il funzionamento delle linee di codice adiacenti.

Durante il processo di compilazione o interpretazione queste istruzioni sono ignorate e di conseguenza non concorrono a determinare la difficoltà computazionale e il peso del file eseguibile[1]. Queste notazioni hanno particolare rilevanza, soprattutto se il programma è sviluppato da più collaboratori e in un ampio arco temporale, infatti aumenta la leggibilità (o intelligibilità) per il lettore e favorisce così manutenzione e aggiornamento del codice. I commenti vengono spesso usati anche per omettere temporaneamente l'esecuzione di alcune porzioni di codice, in modo che non vengano eseguite senza tuttavia rimuoverle dal codice sorgente stesso. Quest'ultima pratica è spesso usata in fase di debugging del programma.

Panoramica

I commenti sono generalmente formattati come commenti di blocco (chiamati anche commenti di prologo o commenti di flusso) o commenti di riga (chiamati anche commenti in linea)[2].

I commenti di blocco delimitano un'area del codice sorgente che può estendersi su più righe o su una parte di una singola riga. Questa regione è specificata con un delimitatore iniziale e un delimitatore finale. Alcuni linguaggi di programmazione (come MATLAB) consentono di annidare ricorsivamente i commenti a blocchi, al contrario di altri (come Java)[3][4][5].

I commenti di riga iniziano con un delimitatore e continuano fino alla fine della riga o, in alcuni casi, iniziano da una colonna specifica (offset di riga dei caratteri) nel codice sorgente e continuano fino alla fine della riga[5].

Alcuni linguaggi di programmazione utilizzano commenti di blocco e di riga con delimitatori di commento diversi. Ad esempio, C++ ha commenti di blocco delimitati da /* e */ che possono estendersi su più righe, mentre i commenti di riga sono delimitati da //. Altre tipologie di linguaggio supportano solo un tipo di commento, ad esempio i commenti in Ada possono essere solo di linea: iniziano con -- e continuano fino alla fine della riga[5].

Sollievo dallo stress

A volte i programmatori aggiungono commenti per alleviare lo stress criticando gli strumenti di sviluppo, i concorrenti, i datori di lavoro, le condizioni di lavoro o la qualità del codice stesso. Il verificarsi di questo fenomeno può essere facilmente visto dalle risorse online che tracciano parolacce nel codice sorgente[6].

Descrizione

Linguaggi di programmazione

Ogni linguaggio possiede una propria sintassi per permettere al programmatore di inserire commenti nel codice. Nella tabella sottostante sono riportate le indicazioni relative ad alcuni dei più utilizzati linguaggi di programmazione e di markup[7].

Linguaggio Commento di riga Commento di blocco
Assembly ;
Autoit ; #cs #ce
BASIC REM oppure '
Bash #
C // /* */
C++ // /* */
C# // /* */
Cobol * nella settima colonna
Fortran !
HTML
<!-- -->
Java // /* */
JavaScript // /* */
Matlab % %{ ... %}
Pascal { } oppure (* *)
PHP // oppure # /* */
Python # """ """
YAML # #

Problemi di sicurezza

Nei linguaggi interpretati i commenti sono visualizzabili dall'utente finale nel codice del programma. In alcuni casi, ciò potrebbe presentare una vulnerabilità di sicurezza[8].

Normative

Esistono vari punti di vista normativi e opinioni di lunga data sull'uso corretto dei commenti nel codice sorgente[9][10]. Alcuni di questi sono informali e basati sulle preferenze personali, mentre altri sono pubblicati o promulgati come linee guida formali per una particolare comunità o gruppo di lavoro[11].

Necessità di commenti

Gli esperti di informatica teorica hanno punti di vista divergenti sull'opportuna quantità e posizione di commenti nel codice sorgente[12][13]. Alcuni affermano che dovrebbe contenere pochi commenti, basandosi sul fatto che il codice dovrebbe essere auto esplicativo (o auto-documentante)[12]. Altri suggeriscono che dovrebbe essere ampiamente commentato per aumentarne chiarezza e leggibilità (non è raro che oltre il 50% dei caratteri diversi da spazi nel file sorgente siano contenuti nei commenti)[senza fonte].

I sostenitori di ambedue i punti di vista concordano che i commenti non sono di per sé né vantaggiosi né dannosi, ma ciò che conta è che siano corretti e mantenuti inerenti al codice sorgente, o omessi se superflui, eccessivi, inefficaci o comunque inutili.

I commenti vengono talvolta utilizzati per documentare i contratti nei progetti su commissione.

Esempio

// esegue un ciclo all'indietro attraverso tutti gli elementi restituiti dal server (devono essere elaborati cronologicamente) 
for(i = (numElementsReturned - 1 ); i >= 0 ;  i--){ 
    // elabora i dati di ogni elemento
    updatePattern(i, returnElements[i]); 
}

Note

  1. ^ (EN) H. James de St. Germain, Commenting, su University of Utah, 2008. URL consultato il 31 agosto 2023.
  2. ^ J.B. Dixit, Computer Fundamentals and Programming in C, Laxmi Publications, 2003, ISBN 978-81-7008-882-0.
  3. ^ Desmond Higham, MATLAB Guide, SIAM, 2005, ISBN 978-0-89871-578-1.
  4. ^ Al Vermeulen, The Elements of Java Style, Cambridge University Press, 2000, ISBN 978-0-521-77768-1.
  5. ^ a b c Using the right comment in Java, su javadude.com, 4 marzo 2000. URL consultato il 24 luglio 2007.
  6. ^ Linux kernel word count, su vidarholen.net. URL consultato il 15 marzo 2021.
  7. ^ Jessica Keyes, Software Engineering Handbook, CRC Press, 2003, ISBN 978-0-8493-1479-7. discusses comments and the "Science of Documentation" p. 256.
  8. ^ Mandy Andress, Surviving Security: How to Integrate People, Process, and Technology, CRC Press, 2003, ISBN 978-0-8493-2042-2.
  9. ^ Pete Goodliffe, Code Craft, San Francisco, No Starch Press, 2006, ISBN 978-1-59327-119-0.
  10. ^ T. Smith, Intermediate Programming Principles and Techniques Using Pascal, Belmont, West Pub. Co, 1991, ISBN 978-0-314-66314-6.
  11. ^ See e.g., Peter Koletzke, Oracle Developer Advanced Forms & Reports, Berkeley, Osborne/McGraw-Hill, 2000, ISBN 978-0-07-212048-6. page 65.
  12. ^ a b The Elements of Programming Style, Kernighan & Plauger
  13. ^ Worst Practice - Bad Comments, su sqlservercentral.com. URL consultato il 24 luglio 2007.

Altri progetti

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Read other articles:

2009 live album by Grateful DeadRoad Trips Volume 2 Number 4Live album by Grateful DeadReleasedAugust 25, 2009RecordedMay 26 – 27, 1993GenreRockLength152:06 bonus disc: 68:58LabelGrateful DeadProducerGrateful DeadGrateful Dead chronology Road Trips Volume 2 Number 3(2009) Road Trips Volume 2 Number 4(2009) Winterland June 1977: The Complete Recordings(2009) Alternative coverRoad Trips Volume 2 Number 4 Bonus Disc Professional ratingsReview scoresSourceRatingAllmusic(favorable)[1 …

1966 British film by Don Sharp Curse of the FlyTheatrical release posterDirected byDon SharpWritten byHarry SpaldingBased onThe Fly by George LangelaanProduced byRobert L. LippertJack ParsonsStarringBrian DonlevyCarole GrayGeorge BakerCinematographyBasil EmmottEdited byRobert WinterMusic byBert ShefterProductioncompanyLippert FilmsDistributed by20th Century FoxRelease dates January 1966 (1966-01) (UK) May 1965 (1965-05) (U.S.) Running time86 minutesCountryUnited Kingd…

 烏克蘭總理Прем'єр-міністр України烏克蘭國徽現任杰尼斯·什米加尔自2020年3月4日任命者烏克蘭總統任期總統任命首任維托爾德·福金设立1991年11月后继职位無网站www.kmu.gov.ua/control/en/(英文) 乌克兰 乌克兰政府与政治系列条目 宪法 政府 总统 弗拉基米尔·泽连斯基 總統辦公室 国家安全与国防事务委员会 总统代表(英语:Representatives of the President of Ukraine) 总理…

علوم الغلاف الجويصنف فرعي من علوم الأرض — علوم بيئية يمتهنه عالم الغلاف الجوي فروع  القائمة ... علم الطقس — كيمياء الغلاف الجوي — فيزياء الغلاف الجوي — علم المناخ — علوم كوكبية تعديل - تعديل مصدري - تعديل ويكي بيانات علوم الغلاف الجوي هو تعبير شامل لدراسات الغلاف الجوي وال…

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: TVRI Papua – berita · surat kabar · buku · cendekiawan · JSTOR TVRI PapuaLPP TVRI Stasiun PapuaJayapura, PapuaIndonesiaSaluranDigital: 43 UHFPemrogramanBahasaBahasa IndonesiaAfiliasiTVRI NasionalKepemilikan…

American painter Elden Heart RowlandPortrait of painter Elden Rowland at his studio in Sarasota, Florida.BornCincinnati, OhioDiedFebruary 22, 1982(1982-02-22) (aged 66)Sarasota, FloridaOccupationPainterSpouseKatherine Rowland Elden Heart Rowland (May 31, 1915 – February 22, 1982) was an artist in Sarasota, Florida.[1] His wife, Katherine Rowland, wrote A Painter and His Wife: A Memoir: Elden Rowland, Painter, Katherine Rowland, Wife about their life in the arts in Sarasota, Cape C…

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (مايو 2023) جغرافيا كينيامعلومات عامةالبلد كينيا القارة إفريقيا الحدود إثيوبياالصومالتنزان…

Zonal council in india Southern India Zonal Council in red This article is part of a series on the Politics of India Constitution and law Constitution of India Fundamental Rights, Directive Principles and Fundamental Duties of India Human rights Judicial review Taxation Uniform Civil Code Basic structure doctrine Amendment Law of India Indian criminal law Bharatiya Nyaya Sanhita Bharatiya Nagarik Suraksha Sanhita Bharatiya Sakshya Adhiniyam Code of Civil Procedure (India) Government President of…

Class of enzymes Sphingomyelin phosphodiesteraseCrystal structure of sphingomyelinase from Bacillus cereus.[1]IdentifiersEC no.3.1.4.12CAS no.9031-54-3 DatabasesIntEnzIntEnz viewBRENDABRENDA entryExPASyNiceZyme viewKEGGKEGG entryMetaCycmetabolic pathwayPRIAMprofilePDB structuresRCSB PDB PDBe PDBsumGene OntologyAmiGO / QuickGOSearchPMCarticlesPubMedarticlesNCBIproteins Sphingomyelin phosphodiesterase (EC 3.1.4.12, also known as neutral sphingomyelinase, sphingomyelinase, or SMase; systema…

This article is about the original company. For its present-day successor, see The Rank Group. British entertainment conglomerate The Rank OrganisationCompany typePublicIndustryFilm and media industryFounded23 April 1937; 87 years ago (1937-04-23) as J. Arthur RankFounderJ. Arthur RankDefunct7 February 1996; 28 years ago (1996-02-07)Fate Assets sold to Rank Group Film assets acquired by Carlton Communications SuccessorCompany:Rank GroupLibrary:ITV StudiosHeadq…

Process of recording the movement of objects or people This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article possibly contains original research. Please improve it by verifying the claims made and adding inline citations. Statements consisting only of original research should be removed. (June 2013) (Learn how and when to remove this message) This article contains content that is writ…

Indian e-commerce company Snapdeal.com redirects here. For the village, see Snapdeal.com Nagar. SnapdealType of businessPrivateType of siteE-commerceAvailable inEnglishFounded2010; 14 years ago (2010) [1]HeadquartersNew Delhi, IndiaArea servedIndiaFounder(s) Kunal Bahl(Chairman & Co-founder) Rohit Bansal(Co-founder) Key peopleHimanshu Chakrawarti(CEO)IndustryE-commerceServicesOnline shoppingRevenue ₹510 crore (US$61 million) (FY 2021)URLwww.sna…

European historical term for a region of West Africa Map by Herman Moll, London, 1729, showing the Grain Coast Part of a series on the History of Liberia Early history Pepper Coast Colonial period American Colonization Society Colony of Liberia Republic of Maryland-in-Africa Americo-Liberian rule 1846 independence referendum Declaration of Independence Constitution of 1847 1871 coup d'état Single-party rule World War II Modern era 1980 coup d'état People's Redemption Council First Civil War Se…

Dalam nama Korean ini, nama keluarganya adalah Kang. Kang In-sooLahir10 Maret 1988 (umur 36)Suwon, Korea SelatanPekerjaan Singer actor Tahun aktif2011–sekarangKarier musikGenre Pop R&B dance Label H2 Media YM3D Virgin Artis terkaitMynameSitus webmyname-jp.com Nama KoreaHangul강인수 Alih AksaraGang In-suMcCune–ReischauerKang Insu Kang In-soo (Hangul: 강인수; lahir 10 Maret 1988) adalah aktor dan penyanyi asal Korea Selatan. Kehidupan dan karier 1988–2010: Kehidu…

Inventor of the wristwatch (1747–1823) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Abraham-Louis Breguet – news · newspapers · books · scholar · JSTOR (November 2009) (Learn how and when to remove this message) Abraham-Louis BreguetBorn(1747-01-10)10 January 1747Neuchâtel, PrussiaDied17 September 1823(18…

دبلوماسيةصنف فرعي من المفاوضات — سياسة خارجية[1] يمتهنه دبلوماسي[1] فروع بعثة دبلوماسية — سفارة التاريخ تاريخ دبلوماسي تعديل - تعديل مصدري - تعديل ويكي بيانات الأمم المتحدة بمقرها الواقع في مدينة نيويورك، هي أكبر منظمة دبلوماسية دولية. Ger van Elk, Symmetry of Diplomacy, 1975, Groninger Muse…

لغة الإشارة السعودية المنطقة  السعودية النسب لغة إشارة لغة إشارةأسرة لغة الإشارة العربيةلغة الإشارة السعودية ترميز أيزو 639-3 esl   قد تحتوي هذه الصفحة على حروف يونيكود. تعديل مصدري - تعديل   شعار لغة الإشارة السعودية. لغة الإشارة السعودية هي لغة الإشارة للصم في المملك…

Regional election in India 1985 Odisha Legislative Assembly election[1] ← 1980 1985 1990 → All 147 seats in the Odisha Legislative Assembly74 seats needed for a majority   First party Second party   Leader Janaki Ballabh Patnaik Biju Patnaik[2] Party Indian National Congress JNP Leader's seat Athagarh & Khurda Bhubaneswar Seats won 117 21 Seat change 1 New Popular vote 40,07,258 24,01,566 Percentage 51.08 32.03 Swing 3.3 New…

Questa voce sugli argomenti palazzi della Toscana e Siena è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Palazzo TantucciPalazzo TantucciLocalizzazioneStato Italia RegioneToscana LocalitàSiena Indirizzovia dei Montanini Coordinate43°19′16.52″N 11°19′49.94″E43°19′16.52″N, 11°19′49.94″E Informazioni generaliCondizioniIn uso Costruzione1548 Stilemanierista Usosede degli uffici della Banca Monte dei Paschi di Siena RealizzazioneArch…

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (فبراير 2016) البطولات الفرنسية 1895معلومات عامةالرياضة كرة المضرب النسخة 5 الفترة 1895 البلد فرنسا المواسمالبطولات الفرنس…