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 .
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 Pascal và FORTRAN, 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ụ C và LISP, 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 . Nó đem lại cho người lập trình các lợi ích:
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.
Đư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ã , để khi lập trình mới thì chỉ cần liên kết tới thư viện đó.
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
👁️
1 | 🔗 | 💖 | ✨ | 🌍 | ⌚
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
**_2 ngày 1 đêm_** (viết tắt: **_2N1Đ_**) là chương trình truyền hình trải nghiệm thực tế do Đài Truyền hình Thành phố Hồ Chí Minh và công ty Đông Tây Promotion phối hợp thực hiện,
**_Running Man_** hay **_Running Man Vietnam_** (tên tiếng Việt hiện tại: **_Running Man Vietnam 3 - Chạy ngay đi_**) là phiên bản Việt hóa của chương trình truyền hình thực tế nổi tiếng của Hàn
**Người dẫn chương trình** (hay còn gọi là **MC** theo cách gọi tắt từ tiếng Anh: **_M**aster of **C**eremonies_) theo nghĩa thông thường trong tiếng Việt được hiểu là người dẫn dắt khán thính giả
**_Xuân hạ thu đông rồi lại xuân_** (hay **_Xuân Hạ Thu Đông, rồi lại Xuân_**) là chương trình truyền hình thực tế về âm nhạc được phát sóng từ ngày 7 tháng 1 năm 2021.
**_King of Mask Singer_** (tên mới là **_The Masked Singer Vietnam_**) là một chương trình truyền hình thực tế được mua bản quyền từ Hàn Quốc của MBC. Đây là chương trình âm nhạc, nơi
**_Idol School- Học Viện Thần Tượng_** (tiếng Hàn: 아이돌 학교) là một chương trình truyền hình thực tế sống còn của đài Mnet nhằm tuyển chọn ra 9 thành viên cho nhóm nhạc nữ trong
**_Music Bank_** (Hangul: 뮤직뱅크, Romaja quốc ngữ: _Myujik Baengkeu_) là một chương trình truyền hình âm nhạc Hàn Quốc được phát sóng trực tiếp lúc 17 giờ (KST) mỗi thứ 6 hàng tuần trên các
thumb|Một chương trình tìm kiếm tài năng của trường Trung học St Ninian tại [[Glasgow, Scotland.]] Một **chương trình tìm kiếm tài năng** là một sự kiện nơi các thí sinh biểu diễn các tiết
**Chương trình Constellation** (viết tắt là **CxP**) là một chương trình du hành không gian có người lái do NASA thực hiện từ năm 2005 đến 2009. Mục tiêu chính của chương trình là "cải
**Shuttle-_Mir**_ (**Tàu con thoi – Trạm vũ trụ _Hòa Bình_**) là chương trình không gian bao gồm 11 sứ mệnh hợp tác giữa Nga và Hoa Kỳ với các hoạt động như tàu con thoi
Dưới đây là **danh sách chương trình truyền hình đã và đang được phát sóng của Đài Truyền hình Việt Nam**, được chia theo kênh và trạng thái phát sóng. Danh sách này không bao
Dưới đây là **danh sách chương trình truyền hình đã và đang được phát sóng của Đài Truyền hình Thành phố Hồ Chí Minh**, được chia theo kênh và trạng thái phát sóng. Danh sách
**Chương trình Artemis** là một dự án hàng không vũ trụ của Hoa Kỳ với mục tiêu là đưa con người quay trở lại Mặt Trăng vào năm 2024. Chương trình đang được triển khai
**Chương trình tàu vũ trụ sử dụng nhiều lần Buran** (Бура́н có nghĩa là "bão tuyết" hay "trận bão tuyết" trong tiếng Nga) được khởi động năm 1976 tại TsAGI như một đối trọng với
**Chương trình Mercury** là chương trình đưa người vào vũ trụ đầu tiên của Hoa Kỳ. Nó diễn ra từ năm 1959 đến năm 1963 với mục đích đặt con người lên quỹ đạo vòng
Trong lập trình, **tham số** là biến được thu nhận bởi một chương trình con. Tại thời gian chạy, chương trình con sử dụng các giá trị được gán cho các tham số để thay
**_Sixteen_** (tiếng Hàn: **식스틴**, cách điệu: **SIXTEEN**) là một chương trình truyền hình thực tế sống còn năm 2015 nhằm tạo ra một nhóm nhạc nữ bởi JYP Entertainment và Mnet. Chương trình là
**Chương trình Vostok** (, , _Phương Đông_) là chương trình bay vào vũ trụ có người lái của Liên Xô. Đây là chương trình vũ trụ cạnh tranh với chương trình Mercury của Mỹ. Với
**_Bố ơi! Mình đi đâu thế?_** là một chương trình truyền hình thực tế do Trung tâm Phim truyền hình Việt Nam sản xuất, dựa trên chương trình truyền hình thực tế của Hàn Quốc
**_Wipeout_** (tạm dịch: **_Cú ngã_**) là một trò chơi truyền hình của Mỹ ban đầu được phát sóng trên ABC từ ngày 24 tháng 6 năm 2008 đến ngày 7 tháng 9 năm 2014. Năm
Huy hiệu của tàu con thoi **Tàu con thoi** của NASA, chính thức được gọi là **Space Transportation System** (**STS**), nghĩa là "Hệ thống Chuyên chở vào Không gian", từng là phương tiện phóng tàu
Một **chương trình quản lý cửa sổ X** (tiếng Anh: _X window manager_) là một phần mềm điều khiển sự bố trí và ngoại hình của các cửa sổ trong hệ thống X Window, một
**_Hugo_** (tiếng Đan Mạch: _Skærmtrolden Hugo_, thường được gọi là "Hugo the Troll" trong tiếng Anh) là chương trình truyền hình tương tác dành cho trẻ em do Interactive Television Entertainment (ITE) sản xuất. Kể
**Hoàng Phan Anh** (sinh ngày 30 tháng 7 năm 1981 tại Hà Nội) là một người dẫn chương trình, diễn viên, người mẫu ảnh và nhà hoạt động xã hội người Việt Nam. ## Tiểu
**Chương trình Apollo** (tiếng Anh: **Apollo program**, còn được biết đến là **project Apollo**), là chương trình đưa người vào vũ trụ thứ ba của Hoa Kỳ do NASA thực hiện, đã thành công trong
**_The Voice_** là một chương trình truyền hình thực tế về cuộc thi âm nhạc của Mỹ, được phát sóng lần đầu tiên trên kênh NBC vào ngày 26 tháng 4 năm 2011 và được
**Bùi Đức Bảo** (sinh ngày 14 tháng 8 năm 1987) là một nam người dẫn chương trình, biên tập viên kiêm diễn viên nổi tiếng người Việt Nam. Năm 2022, Đức Bảo đoạt giải "Biên
**Võ Thành Trung** (sinh ngày 27 tháng 1 năm 1983), thường được biết đến với nghệ danh **Thành Trung**, là một nam người dẫn chương trình kiêm diễn viên người Việt Nam. Anh đã từng
**Chương trình Lương thực Thế giới** (tiếng Anh: _World Food Programme_, viết tắt là _WFP_) là một chương trình viện trợ lương thực nhân đạo của Liên Hợp Quốc và là tổ chức nhân đạo
**_Luật rừng_** (Tiếng Anh: Law of the Jungle, ) là một chương trình truyền hình thực tế-tài liệu của Hàn Quốc trên kênh SBS. Nó được phát sóng lần đầu tiên vào 21 tháng 10
Phiên bản gốc của chương trình **_I Can See Your Voice_** (tạm dịch: **_Tôi có thể thấy giọng hát của bạn_**, viết tắt: **_ICSYV_**) (tiếng Triều Tiên - ) là một chương trình truyền hình
**Chương trình khách bay thường xuyên** (**FFP**) là chương trình khách hàng thân thiết được cung cấp bởi một hãng hàng không. Nhiều hãng hàng không có các chương trình thường xuyên-tờ được thiết kế
**_Sasuke_** (サスケ) là một chương trình truyền hình thực tế về thể thao giải trí của Nhật Bản, phát sóng trên đài truyền hình TBS. Ra mắt lần đầu tiên vào mùa thu năm 1997,
**_12 con giáp_** là một chương trình truyền hình thường niên của VTV vào dịp Tết Âm lịch. Đây là chương trình trò chuyện xen lẫn biểu diễn nghệ thuật, với khách mời là những
**Hell's Kitchen** hay **Nhà bếp địa ngục** là một chương trình truyền hình thực tế về nấu ăn của Mỹ được công chiếu lần đầu trên Fox vào ngày 30 tháng 5 năm 2005. Chương
**Nguyễn Cao Kỳ Duyên** (sinh ngày 30 tháng 6 năm 1965) là một luật sư người Mỹ gốc Việt kiêm người dẫn chương trình, ca sĩ, diễn viên của Paris by Night thuộc Trung tâm
**Chương trình Gemini** (hay **Dự án Gemini**; tiếng Anh: **Project Gemini**) là chương trình chuyến bay vũ trụ có con người thứ hai của NASA. Chương trình Gemini là dự án phối hợp với hai
**Chương trình Môi trường Liên Hợp Quốc** (**_United Nations Environment Programme _** — **UNEP**) là một cơ quan của LHQ điều phối các hoạt động môi trường của Liên Hợp Quốc, hỗ trợ các nước
**_Good Omens_** là một miniseries dựa trên cuốn tiểu thuyết cùng tên năm 1990 của Terry Pratchett và Neil Gaiman. Là sản phẩm hợp tác giữa Amazon Studios và BBC Studios, sê-ri gồm sáu tập
phải|nhỏ|Tàu Soyuz 19 từ [[Dự án thử nghiệm Apollo–Soyuz.]] **Chương trình Soyuz** (