Chương trình con

Trong khoa học máy tính, chương trình con (subprogram) hay subroutine là một đoạn chương trình được đóng gói thành một đơn vị trình, nó thực hiện một số tác vụ cụ thể mà chương trình cần thực hiện nhiều lần từ nhiều nơi trong thời gian chạy của nó. Khi chương trình cần đến tác vụ cụ thể đó thì bố trí chỉ thị gọi (call) đến chương trình con này và nhận kết quả nếu có sau khi nó thực thi xong [1].

Ngay từ lúc máy tính ra đời thì kỹ thuật lập trình kiểu cấu trúc modul hóa với các chương trình con đã được thiết lập, và được củng cố trong các phần mềm lập trình hợp ngữ. Ngày nay trong ngôn ngữ bậc cao chương trình con được diễn đạt tùy theo ngôn ngữ là các hàm (function), thủ tục (procedure) và phương thức (method),... Một số ngôn ngữ lập trình, chẳng hạn PascalFORTRAN, phân biệt giữa hàm (một chương trình con có trả về giá trị) và thủ tục (không trả về giá trị). Các ngôn ngữ khác, ví dụ CLISP, coi hai thuật ngữ này như nhau. Cái tên phương thức thường được dùng trong lập trình hướng đối tượng để gọi các chương trình con là một phần của các đối tượng.

Trong chương trình, một chương trình con được phép gọi chương trình con khác, hoặc có thể gọi chính nó. Tuy nhiên nếu bố trí gọi lẫn nhau, ví dụ subroutine A gọi subroutine B nhưng trong thân của subroutine B lại có gọi subroutine A, sẽ dẫn đến lỗi bất định khi thực hiện. Một số ngôn ngữ có hỗ trợ phát hiện lỗi này trong môi trường soạn thảo trình và khi dịch. Dẫu vậy để tránh lỗi thì khi lập trình phải tuân thủ bố trí gọi theo "mô hình cành và lá", trong đó "cành" là subroutine có gọi subroutine khác, còn "lá" là subroutine không có lệnh gọi.

Khái niệm chính

Kỹ thuật lập trình dẫn đến việc tổ chức chương trình kiểu cấu trúc modul hóa, tức là chia chương trình thành nhiều modul hay đơn vị mà kỹ thuật điện toán gọi là subroutine, và trong trình chính thì thực hiện gọi chúng [2][3]. Nó đem lại cho người lập trình các lợi ích:

  1. Thay các đoạn trình giống nhau bằng một subroutine, làm cho mã chương trình ngắn hơn, sáng sủa và dễ bảo dưỡng.
  2. Đưa các subroutine đã kiểm tra vào thư viện (library) ở dạng văn bản trình hoặc dạng mã [4], để khi lập trình mới thì chỉ cần liên kết tới thư viện đó.
  3. Những chương trình lớn được thiết kế dạng cấu trúc tốt có thể trao cho các nhóm và người lập trình khác nhau lập trình, đôi khi có thể thuê người làm thêm viết các subroutine không quá phức tạp.

Do tầm quan trọng của việc tổ chức trình kiểu cấu trúc mà ngay từ khi công nghiệp máy tính ra đời, còn phải lập trình ở dạng mã máy, giới chế tạo máy đã chăm chút nhiều đến lệnh call và tổ chức của chương trình con. Nếu giải mã ngược (unassemble) mã trình thì thấy dày đặc lệnh call.

Bên cạnh các subroutine thực sự thì một số ngôn ngữ lập trình, kể cả lập trình hợp ngữ, hỗ trợ dạng chương trình con (trong văn bản trình) mà khi dịch thì thay thế bằng đoạn mã chương trình, không tạo ra subroutine dạng mã thật sự.

  • Macro: Dịch nội dung có trong macro có tên chỉ định và đặt vào vị trí tương ứng.
  • Inline: Chuyển nội dung mã được viết ở dạng hex trong procedure có tên chỉ định và đặt vào vị trí tương ứng.

Nhược điểm

Nhược điểm chính của vận dụng chương trình con liên quan đến bố trí các mã chỉ thị "dọn nhà" (housekeeping code) ở chương trình con, làm cho thời gian thi hành tác vụ kéo dài hơn so với khi đoạn mã đó được đặt thẳng trong chương trình chính.

Khi chuyển điều khiển sang chương trình con, tại các điểm vào (entry) chương trình con phải bố trí sao lưu giá trị các con trỏ (pointer) của bộ xử lý. Khi kết thúc (exit) giá trị các con trỏ được khôi phục lại từ trị sao lưu rồi mới thoát. Những đoạn mã sao lưu và khôi phục này giống nhau ở các chương trình con, tức là nếu subroutine "không làm gì" thì khi dịch ra mã vẫn có đủ cặp đoạn mã này.

Vì thế lập trình cho các vi điều khiển có tốc độ thấp và bộ nhớ hạn chế thì phải cân đối giữa việc lập hay không lập chương trình con. Các CPU điện toán hiện nay có tốc độ rất cao nên tổn thất thời gian này hiện ra không đáng kể, những người lập trình ứng dụng không cần quan tâm.

Chỉ dẫn

Tham khảo

  1. ^ U.S. Election Assistance Commission (2007). “Definitions of Words with Special Meanings”. Voluntary Voting System Guidelines. Bản gốc lưu trữ ngày 22 tháng 2 năm 2017. Truy cập ngày 14 tháng 1 năm 2013.
  2. ^ Wheeler, D. J. (1952). “The use of sub-routines in programmes”. Proceedings of the 1952 ACM national meeting (Pittsburgh) on - ACM '52. tr. 235. doi:10.1145/609784.609816. Bản gốc lưu trữ ngày 28 tháng 6 năm 2015. Truy cập ngày 24 tháng 12 năm 2016.
  3. ^ Wilkes, M. V.; Wheeler, D. J.; Gill, S. (1951). Preparation of Programs for an Electronic Digital Computer. Addison-Wesley.
  4. ^ Dainith, John. "open subroutine." A Dictionary of Computing. 2004.”. Encyclopedia.com. Truy cập ngày 14 tháng 1 năm 2013.

Xem thêm

Liên kết ngoài

Read other articles:

Al-Qur'an Sejarah Wahyu Kesejarahan Asbabunnuzul Nuzululqur'an Manuskrip Samarkand Sanaa Birmingham Topkapi Pembagian Hizb Juz Manzil Muqatta'at Surah Daftar Makiyah Madaniyah Isi Eskatologi Hewan Keajaiban Ketuhanan Ilmu pengetahuan Legenda Nabi dan Rasul Nama lain Perumpamaan Wanita Membaca Taawuz Basmalah Hafiz Qiraat Qari Tajwid Tartil Khatam Terjemahan Daftar terjemahan Al-Qur'an Tafsir Daftar karya tafsir Hermeneutika Takwil Nasakh Hubungan dengan kitab lain Orang yang disebut namanya K...

 

Pour les articles homonymes, voir Disraeli. Benjamin Disraeli Benjamin Disraeli en 1878. Fonctions Premier ministre du Royaume-Uni 20 février 1874 – 21 avril 1880(6 ans, 2 mois et 1 jour) Monarque Victoria Prédécesseur William Ewart Gladstone Successeur William Ewart Gladstone 27 février 1868 – 1er décembre 1868(9 mois et 4 jours) Monarque Victoria Prédécesseur Lord Derby Successeur William Ewart Gladstone Chef de l'opposition 1er décembre 1868 – 17 fé...

 

Canadian literary magazine Literary Review of CanadaJanuary/February 2020 cover of the Literary Review of CanadaEditorKyle WyattFrequencyTen per yearFounded1991; 33 years ago (1991)First issueNovember 1991CountryCanadaBased inToronto, OntarioWebsitereviewcanada.caISSN1188-7494 The Literary Review of Canada is a Canadian magazine that publishes ten times a year in print and online. The magazine features essays and reviews of books on political, cultural, social, and literary ...

Voce principale: Storia dell'Italia fascista. Tribunale speciale per la difesa dello Stato Il Palazzo di Giustizia di Roma, che fu sede del Tribunale speciale Stato Italia Istituito25 novembre 1926 Operativo dal1º febbraio 1927 Soppresso29 luglio 1943 PresidenteCarlo Sanna (1926-1928), Guido Cristini (1928-1932), Antonino Tringali Casanova (1932-1943) SedeRoma Modifica dati su Wikidata · Manuale Il Tribunale speciale per la difesa dello Stato fu un organo speciale del regime fasc...

 

Gustave Caillebotte Gustave Caillebotte (bahasa Prancis: [ɡystav kɑjbɔt]; 19 Agustus 1848 – 21 Februari 1894) merupakan seorang pelukis Prancis yang menjadi anggota dan pelindung Impresionisme, meskipun ia melukis dengan cara yang lebih realistik daripada banyak orang lain dalam kelompok itu. Caillebotte terkenal karena minat awalnya pada fotografi sebagai bentuk seni.[1] Galeria Nude Lying on a Couch (1873)Hadiah yang dijanjikan keMetropolitan Museum of Art[2] Les j...

 

Bài này viết về thành phố Roma. Rome được chuyển hướng đến đây. Với những mục đích tìm kiếm khác, vui lòng xem La Mã (định hướng). Roma—  Thành phố thủ đô và comune  —S.P.Q.R. Roma Capitale Theo chiều kim đồng hồ tính từ trên cùng:Đấu trường La Mã, Vương cung thánh đường Thánh Phêrô tại Vatican, Lâu đài Thiên Thần, sông Tiber đoạn Cầu Thiên Thần, Đài phun nước...

Trans-Pennine railway line in Northern England Hope Valley lineThe line at Bamford in the Hope ValleyOverviewStatusOperationalOwnerNetwork RailLocaleGreater ManchesterDerbyshireSouth YorkshireTerminiManchester PiccadillySheffieldStations28ServiceTypeHeavy railSystemNational RailOperator(s)East Midlands RailwayNorthern TrainsTransPennine ExpressDepot(s)LongsightRolling stockClass 150Class 156Class 158Class 170Class 185Class 195HistoryOpened6 November 1893 (goods)1 June 1894 (passengers)Technic...

 

Part of District III of Budapest, Hungary Obuda town hall in Budapest Óbuda was a town in Hungary that was merged with Buda and Pest on 17 November 1873; it now forms part of District III-Óbuda-Békásmegyer of Budapest. The name means Old Buda in Hungarian (in German, Alt-Ofen). The name in Serbo-Croatian for this city is Stari Budim, but the local Croat minority calls it Obuda (the name Budim is used for the fortress in Buda). In Czech and the Slovak languages, it is called Starý Budín....

 

Hukuman Iksion; Nefele duduk di kaki Merkurius (Hermes). Lukisan dinding Romawi di Pompeii. Dalam mitologi Yunani, Nefele (bahasa Yunani: Νεφέλη, dari νέφος nephos awan) adalah nimfa atau dewi awan. Nefele merupakan tokoh penting dalam kisah Friksos dan Helle.[1] Zeus menciptakan Nefele dari awan dalam wujud yang menyerupai Hera. Zeus menciptakan Nefele untuk menguji Iksion, yang dicurigai oleh Zeus berhasrat pada Hera. Iksion melihat Nefele dan mengiranya sebagai Hera....

Adama Barrow Presiden Gambia 3PetahanaMulai menjabat 19 Januari 2017Wakil PresidenFatoumata TambajangOusainou DarboeIsatou TourayPendahuluYahya JammehPenggantiPetahana Informasi pribadiLahir16 Februari 1965 (umur 59)Mankamang Kunda, Divisi Upper River, GambiaPartai politikPartai Persatuan DemokratikAfiliasi politiklainnyaKoalisi 2016Suami/istri2 istriAnak5Sunting kotak info • L • B Adama Barrow (lahir 16 Februari 1965[1]) adalah seorang politikus dan pengemb...

 

Mark worn on the forehead and other parts of the body Tilak redirects here. For the Indian anti-colonial leader, see Bal Gangadhar Tilak. A Nepali woman with a tilaka on her forehead In Hinduism, the tilaka (Sanskrit: तिलक), colloquially known as a tika, is a mark worn usually on the forehead, at the point of the ajna chakra (third eye or spiritual eye) and sometimes other parts of the body such as the neck, hand, chest, or the arm.[1] The tilaka may be worn daily for decorati...

 

1947 British filmAn Ideal HusbandOriginal French film posterDirected byAlexander KordaScreenplay byLajos BíróBased onAn Ideal Husband1895 playby Oscar WildeProduced byAlexander KordaStarringPaulette GoddardMichael WildingDiana WynyardCinematographyGeorges PérinalEdited byOswald HafenrichterMusic byArthur BenjaminColor processTechnicolorProductioncompanyLondon Film ProductionsDistributed byBritish Lion Films Corporation(UK)20th Century Fox(US)Release dates 13 November 1947 (...

File format used in digital photography For the file format, see IMG (file format). For the Shockwave Media File (.dcr) created with Adobe Director, see Adobe Director, Adobe Shockwave, and Adobe Shockwave Player. Not to be confused with Rawdisk. Camera raw and .srf redirect here. For the Adobe product, see Adobe Camera Raw. For the ATL file type, see ATL Server § SRF files. Raw image fileFilename extension .3fr, .ari, .arw, .bay, .braw, .crw, .cr2, .cr3, .cap,.data, .dcs, .dcr, .dng, ....

 

Coppa UEFA 1974-1975 Competizione Coppa UEFA Sport Calcio Edizione 4ª Organizzatore UEFA Date dal 17 settembre 1974al 21 maggio 1975 Partecipanti 64 Nazioni 31 Risultati Vincitore Borussia M'gladbach(1º titolo) Finalista Twente Semi-finalisti ColoniaJuventus Statistiche Miglior marcatore Jupp Heynckes (11) Incontri disputati 124 Gol segnati 379 (3,06 per incontro) I giocatori del Borussia M'gladbach sollevano il trofeo Cronologia della competizione 1973-1974 1975-1976 Man...

 

يوم الباستيل العيد الوطني الفرنسي   البلد فرنسا  البداية 1880  يسمى أيضًا الرابع عشر من يوليو نوعه يوم وطني أهميته يحتفل بذكرى اقتحام سجن الباستيل يوم 14 يوليو عام ووحدة الشعب الفرنسي في عيد الاتحاد 14 يوليو عام 1790. الاحتفالات عرض عسكري، ألعاب نارية، حفلات موسيقيَّة، ح�...

В Википедии есть статьи о других людях с фамилией Хадсон. Марта Хадсон Общая информация Дата и место рождения 21 марта 1939(1939-03-21) (85 лет)Истмен[вд], Джорджия, США Гражданство  США Рост 152 см Вес 53 кг Международные медали Олимпийские игры Золото Рим 1960 эстафета 4×100 м &...

 

University in Baghdad, Iraq Al-Mustansiriyah Universityالجامعة المستنصريةwelcomeMottoو قُل ربي زدني علماًMotto in EnglishO Lord, Increase my KnowledgeTypePublic UniversityEstablished1227; 797 years ago (1227)1963 (modern)FounderMustansirPresidentProf. Dr. Hamid TamimiLocationBaghdad, IraqWebsitewww.uomustansiriyah.edu.iq Al Mustansiriya University main door. Façade on the gates of the university showing arabesque Al-Mustansiriyah Univer...

 

Currency not backed by any commodity Yuan dynasty banknotes are a medieval form of fiat money. Part of a series onEconomics History Outline Index Branches and classifications Applied Econometrics Heterodox International Micro / Macro Mainstream Mathematical Methodology Political JEL classification codes Concepts, theory and techniques Economic systems Economic growth Market National accounting Experimental economics Computational economics Game theory Operations research Middle income trap In...

1610–1763 territory of New France For other uses, see Pays-d'en-Haut. Pays d'en HautTerritory of New France1610–1763 FlagPays d'en Haut in New France on a map by Jacques Nicholas Bellin in 1755CapitalQuebecHistory • Established 1610• Ceded to Britain 10 February 1763 The Pays d'en Haut (French: [pɛ.i dɑ̃ o]; Upper Country) was a territory of New France covering the regions of North America located west of Montreal. The vast territory included most of the Grea...

 

Yugoslav communist politician Ivan GošnjakИван ГошњакIvan Gošnjak, 1966.2nd Federal Secretary of People's Defence of YugoslaviaIn office14 January 1953 – 18 May 1967Preceded byJosip Broz TitoSucceeded byNikola Ljubičić Personal detailsBorn(1909-06-10)10 June 1909Ogulin, Croatia-Slavonia, Austria-HungaryDied8 February 1980(1980-02-08) (aged 70)Belgrade, SR Serbia, SFR YugoslaviaNationalityYugoslavPolitical partySKJSpouseTea GošnjakAwardsOrder of FreedomOrder of N...