Lập Trình Máy Tính – Wikipedia Tiếng Việt

"lập trình" đổi hướng tới đây. Đối với các định nghĩa khác, xem lập trình (định hướng).
Một phần của loạt bài về
Phát triển phần mềm
Hoạt động cốt lõi
  • Mô hình hóa dữ liệu
  • Quy trình
  • Yêu cầu
  • Thiết kế
  • Xây dựng
  • Công nghệ
  • Thử nghiệm
  • Gỡ lỗi
  • Triển khai
  • Bảo trì
Mô hình và hình mẫu
  • Linh hoạt
  • Phòng sạch
  • Tăng dần
  • Nguyên mẫu
  • Xoắn ốc
  • Mô hình V
  • Thác nước
Phương pháp và framework
  • ASD
  • DevOps
  • DAD
  • DSDM
  • FDD
  • IID
  • Kanban
  • Lean SD
  • LeSS
  • MDD
  • MSF
  • PSP
  • RAD
  • RUP
  • SAFe
  • Scrum
  • SEMAT
  • TDD
  • TSP
  • OpenUP
  • UP
  • XP
Các ngành hỗ trợ
  • Quản lý cấu hình
  • Tài liệu
  • Đảm bảo chất lượng phần mềm
  • Quản lý dự án
  • Trải nghiệm người dùng
Thực hành
  • ATDD
  • BDD
  • CCO
  • CI
  • CD
  • DDD
  • PP
  • SBE
  • Đứng
  • TDD
Công cụ
  • Trình biên dịch
  • Trình gỡ lỗi
  • Hồ sơ
  • Trình thết kế GUI
  • Mô hình hóa UML
  • IDE
  • Tự động hóa xây dựng
  • Tự động hóa phát hành
  • Cơ sở hạ tầng dưới dạng mã
Tiêu chuẩn và khối kiến thức
  • CMMI
  • Tiêu chuẩn IEEE
  • ISO 9001
  • Tiêu chuẩn ISO/IEC
  • PMBOK
  • SWEBOK
  • ITIL
  • IREB
  • OMG
Bảng thuật ngữ
  • Trí tuệ nhân tạo
  • Khoa học máy tính
  • Kỹ thuật điện và điện tử
Sơ lược
  • Sơ lược về phát triển phần mềm
  • x
  • t
  • s

Lập trình máy tính hay lập chương trình máy tính, thường gọi tắt là lập trình (tiếng Anh: computer programming, hay programming), là việc lập ra chương trình làm việc cho máy có bộ xử lý, nói riêng là máy tính, để thực thi nhiệm vụ xử lý thông tin nào đó. Chương trình này gồm dãy các chỉ thị (hay lệnh) hợp lý để máy thực hiện theo trình tự thời gian.[1]

Lập trình phải thực hiện cho tất cả các hệ thống xử lý thông tin, từ các dàn máy điện toán lớn, máy tính cá nhân (PC), đến các chip điều khiển lập trình được trong các khối điều khiển thiết bị các loại như trong máy đo đạc phân tích, vũ khí có điều khiển, máy giặt, lò vi sóng, v.v... và trong các thiết bị ngoại vi của máy tính như chip điều khiển ở card màn hình, cổng giao tiếp, v.v...

Dạng chương trình duy nhất mà máy tính có thể thực thi trực tiếp là ngôn ngữ máy hay mã máy, có dạng dãy các số nhị phân.[2] Lập trình trực tiếp ở dạng mã máy là công việc tốn sức, khó kiểm tra và lệ thuộc phần cứng cụ thể. Vì thế giới lập trình phát triển ra các ngôn ngữ lập trình với hệ thống ký hiệu, từ khóa và cú pháp cụ thể để lập trình viên dễ viết mã nguồn ở dạng văn bản mà không quá lệ thuộc vào phần cứng, sau đó biên dịch (compile) ra mã máy.

Ngày nay lập trình ứng dụng trên các máy điện toán được hỗ trợ bằng các thư viện, các công cụ AI bot như chatgpt github codepilot cùng với nhiều AI bot khác, khả năng liên kết mã phát sinh từ các ngôn ngữ khác nhau cũng như viết mã lệnh tự động, và đặc biệt là sử dụng biểu tượng trực quan (visual) cho lập trình. Trong kỹ thuật điện toán việc lập ra bộ chương trình thường được gọi là phát triển phần mềm. Lập trình có các thành tố nghệ thuật, khoa học, toán học, và kỹ nghệ.[1]

Các ngôn ngữ lập trình

[sửa | sửa mã nguồn] Bài chi tiết: Ngôn ngữ lập trình

Dạng chương trình duy nhất mà máy tính có thể thực thi trực tiếp là ngôn ngữ máy hay mã máy. Nó có dạng dãy các số nhị phân, thường được ghép nhóm thành byte 8 bit cho các hệ xử lý 8/16/32/64 bit.[note 1] Nội dung byte thường biểu diễn bằng đôi số hex. Để có được bộ mã này ngày nay người ta dùng ngôn ngữ lập trình để viết ra chương trình ở dạng văn bản và dùng trình dịch để chuyển sang mã máy.[3]

Mã máy

[sửa | sửa mã nguồn]

Khi kỹ thuật điện toán ra đời chưa có ngôn ngữ lập trình dạng đại diện nào, thì phải lập trình trực tiếp bằng mã máy. Dãy byte viết ra được đục lỗ lên phiếu đục lỗ (punched card) và nhập qua máy đọc phiếu tới máy tính.[4] Sau đó chương trình có thể được ghi vào băng/đĩa từ để sau này nhập nhanh vào máy tính. Ngôn ngữ máy được gọi là "ngôn ngữ lập trình thế hệ 1" (1GL, first-generation programming languages).[5] Lúc đó có nhiều hãng sản xuất máy tính và mã máy chưa hoàn toàn thống nhất, nên lập trình gắn liền với máy của hãng.

Hợp ngữ

[sửa | sửa mã nguồn]

Sau đó các mã lệnh được thay thế bằng các tên gợi nhớ và trình được lập ở dạng văn bản (text) rồi dịch sang mã máy. Hợp ngữ (assembly languages) ra đời, là "ngôn ngữ lập trình thế hệ 2" (2GL, second-generation programming languages). Lập trình thuận lợi hơn, khi dịch có thể liên kết với thư viện chương trình con ở cả dạng macro (đoạn chưa dịch) và lẫn mã đã dịch.

Dẫu vậy người lập trình phải nắm chắc về hoạt động của hệ thống xử lý, về các thanh ghi (register), con trỏ (pointer) và vai trò của chúng thì mới tránh được lỗi. Lúc này bắt đầu có sự thống nhất quốc tế về các tập lệnh cần thiết trong kỹ thuật điện toán.

Trong kỹ thuật điện toán hợp ngữ hiện được dùng là ngôn ngữ bậc thấp (low-level programming languages) để tinh chỉnh ngôn ngữ bậc cao thực hiện truy nhập trực tiếp phần cứng cụ thể trong việc lập trình hệ thống, hoặc định tạo các hiệu ứng đặc biệt cho chương trình của mình.

Hợp ngữ hiện là phương tiện lập trình các vi điều khiển trong bảng/khối điều khiển thiết bị điện tử các loại, từ các máy đo, vũ khí, thiết bị dân sinh như máy giặt, lò vi sóng, v.v... Bảng lệnh của vi điều khiển này khác với của máy điện toán, nên hợp ngữ vi điều khiển cũng khác, và đơn giản hơn.

Lập trình mã máy và hợp ngữ cho ra chương trình chạy nhanh nhất trên cùng máy tính, vì nó chứa rất ít chỉ thị thừa hay chỉ thị rác, và giảm lượng mã nhờ việc đặt giá trị các thanh ghi được làm tắt. Các ngôn ngữ bậc cao khi dịch phải bố trí nhiều chỉ thị máy đảm bảo tính khái quát cao nhất, cùng với những câu lệnh thừa của người lập trình mà khi sửa chữa chưa kịp xóa đi.

Ngôn ngữ bậc cao

[sửa | sửa mã nguồn]

Ngôn ngữ bậc cao (high-level programming languages) hay "ngôn ngữ lập trình thế hệ 3" (3GL, third-generation programming languages) ra đời vào những năm 1950. Đây là các ngôn ngữ hình thức, dùng trong lập trình máy điện toán và không lệ thuộc vào hệ máy tính cụ thể nào. Nó giải phóng người lập trình ứng dụng làm việc trong hệ điều hành xác định mà không phải quan tâm đến phần cứng cụ thể. Các ngôn ngữ được phát triển liên tục với các dạng và biến thể mới, theo bước phát triển của kỹ thuật điện toán.

Những ngôn ngữ bậc cao thời kỳ đầu có FORTRAN lập ra năm 1954,[6] COBOL năm 1959,[7] BASIC năm 1963,[8] Pascal năm 1970,[9] C năm 1970,[10] v.v... Chúng có sự khác nhau về từ khóa, ký hiệu, cú pháp, và cả về tổ chức các segment dữ liệu trong bộ nhớ. Sự phát triển lập trình dẫn đến ngôn ngữ C có những ưu việt trong lập trình và quản lý dữ liệu, nên được dùng nhiều, được phát triển tiếp và thành nền ý tưởng cho phát triển nhiều ngôn ngữ mới.

Những ngôn ngữ được dùng phổ biến hiện có ActionScript, C, C++, MATLAB, C#, Haskell, Java, JavaScript, Objective-C, Perl, PHP, Python, Ruby, Smalltalk, SQL, Visual Basic, và nhiều nữa.[11]

Ngày nay các ngôn ngữ lập trình đều cung cấp môi trường soạn thảo mã nguồn, có yểm trợ cao về kiểm tra cú pháp. Một số ngôn ngữ lưu mã nguồn ở dạng văn bản. Song một số khác, thay vì được dịch ra mã máy, lại được lưu ở dạng mã gọi là Bytecode (hoặc Portable code), và có trình thông dịch tương ứng để thực thi dạng mã này. Bytecode được sử dụng trong ngôn ngữ lập trình Java của Sun Microsystems cũng như họ ngôn ngữ lập trình .NET gần đây của Microsoft và Visual Basic trước phiên bản .NET.

Các ngôn ngữ lập trình khác nhau hỗ trợ các phong cách lập trình khác nhau (còn gọi là các phương pháp lập trình). Một phần của công việc lập trình là việc lựa chọn một trong những ngôn ngữ phù hợp nhất với bài toán cần giải quyết. Các ngôn ngữ lập trình khác nhau đòi hỏi lập trình viên phải xử lý các chi tiết ở các mức độ khác nhau khi cài đặt các thuật toán. Thông thường, điều này dẫn tới thỏa hiệp giữa thuận lợi cho việc lập trình và hiệu quả của chương trình, hay thỏa hiệp giữa "thời gian lập trình" và "thời gian tính toán".

Phát triển phần mềm

[sửa | sửa mã nguồn] Bài chi tiết: Kỹ nghệ phần mềm

Phần mềm là danh từ chỉ một gói gồm các chương trình máy tính và dữ liệu. Tài liệu đi kèm và bản quyền phần mềm cũng được coi là một phần quan trọng của phần mềm, mặc dù chúng không liên quan đến việc lập trình.

Quy trình xây dựng phần mềm bao gồm các công việc chính:

  • Phân tích yêu cầu (requirements analysis)
  • Đặc tả (specification)
  • Thiết kế (design and architecture)
  • Lập trình (coding)
  • Biên dịch (compilation)
  • Kiểm thử (testing)
  • Viết tài liệu (documentation)
  • Bảo trì (maintenance)

Chỉ dẫn

[sửa | sửa mã nguồn]
  1. ^ Các điều khiển thiết bị đơn giản như trong máy giặt có thể dùng bộ xử lý 4 bit. Ngược lại điều khiển thiết bị phức tạp thì dùng máy tính nhúng, là board PC công nghiệp có mức chống ồn, rung lắc và chịu ô nhiễm không khí cao.

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ a b Shaun Bebbington (2014). "What is programming". Truy cập ngày 3 tháng 3 năm 2014.
  2. ^ Shaun Bebbington (2014). "What is coding". Truy cập ngày 3 tháng 3 năm 2014.
  3. ^ "CSC-302 99S: Class 02: A Brief History of Programming Languages". Math.grin.edu. Bản gốc lưu trữ ngày 25 tháng 5 năm 2018. Truy cập ngày 25 tháng 4 năm 2010.
  4. ^ U.S. Census Bureau: The Hollerith Machine
  5. ^ "Columbia University Computing History - Herman Hollerith". Columbia.edu. Truy cập ngày 25 tháng 4 năm 2010.
  6. ^ John Backus. "The history of FORTRAN I, II and III" (PDF). Softwarepreservation.org. Truy cập ngày 19 tháng 11 năm 2014.
  7. ^ Bemer, Bob (1971). "A View of the History of COBOL". Honeywell Computer Journal. Honeywell. 5 (3)
  8. ^ Dartmouth College Computation Center (1964). A Manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System Lưu trữ ngày 16 tháng 7 năm 2012 tại Wayback Machine
  9. ^ Niklaus Wirth: The Programming Language Pascal. 35–63, Acta Informatica, Volume 1, 1971.
  10. ^ Kernighan, Brian W.; Ritchie, Dennis M. (tháng 2 năm 1978). The C Programming Language (ấn bản thứ 1). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3. Regarded by many to be the authoritative reference on C.
  11. ^ Ritchie S. King. "The Top 10 Programming Languages". Truy cập ngày 26 tháng 11 năm 2012.

adadawjs dunuawnsvuedaso

Wikimedia Commons có thêm hình ảnh và phương tiện về Lập trình máy tính.

Liên kết ngoài

[sửa | sửa mã nguồn] Wikibooks tiếng Anh có chủ đề về Lập trình máy tính
  • TechBookReport – reviews of books on computer programming
  • x
  • t
  • s
Khoa học máy tính
Chú ý: Bản mẫu này cơ bản dựa trên Hệ thống xếp loại điện toán ACM năm 2012.
Phần cứng
  • Mạch in
  • Thiết bị ngoại vi
  • Vi mạch
  • Vi mạch tích hợp
  • Hệ thống trên vi mạch (SoC)
  • Tiêu thụ năng lượng (Điện toán xanh)
  • Tự động hóa thiết kế điện tử
  • Tăng tốc phần cứng
  • Bộ xử lý
  • Kích thước / Dạng thức
Tổ chức hệ thống máy tính
  • Kiến trúc máy tính
  • Độ phức tạp tính toán
  • Độ tin cậy hệ thống
  • Hệ thống nhúng
  • Hệ thống thời gian thực
Mạng máy tính
  • Kiến trúc mạng
  • Giao thức mạng
  • Phần cứng mạng
  • Bộ lập lịch trình mạng
  • Hiệu suất mạng
  • Dịch vụ mạng
Tổ chức phần mềm
  • Trình thông dịch
  • Middleware
  • Máy ảo
  • Hệ điều hành
  • Chất lượng phần mềm
Ký pháp và công cụ phần mềm
  • Mẫu hình lập trình
  • Ngôn ngữ lập trình
  • Trình biên dịch
  • Ngôn ngữ miền chuyên biệt
  • Ngôn ngữ mô hình hóa
  • Khung phần mềm
  • Môi trường phát triển tích hợp
  • Quản lý cấu hình phần mềm
  • Thư viện phần mềm
  • Kho chứa phần mềm
Phát triển phần mềm
  • Biến điều khiển
  • Quy trình phát triển phần mềm
  • Phân tích yêu cầu
  • Thiết kế phần mềm
  • Xây dựng phần mềm
  • Triển khai phần mềm
  • Công nghệ phần mềm
  • Bảo trì phần mềm
  • Nhóm lập trình
  • Mô hình nguồn mở
Lý thuyết tính toán
  • Mô hình tính toán
    • Ngẫu nhiên
  • Ngôn ngữ hình thức
  • Lý thuyết Automat
  • Lý thuyết khả tính
  • Lý thuyết độ phức tạp tính toán
  • Logic
  • Ngữ nghĩa
Thuật toán
  • Thiết kế thuật toán
  • Phân tích thuật toán
  • Hiệu quả thuật toán
  • Thuật toán ngẫu nhiên
  • Hình học tính toán
Toán học về điện toán
  • Toán học rời rạc
  • Xác suất
  • Thống kê
  • Phần mềm toán học
  • Lý thuyết thông tin
  • Giải tích toán học
  • Giải tích số
  • Khoa học máy tính lý thuyết
Hệ thống thông tin
  • Hệ quản trị cơ sở dữ liệu
  • Hệ thống lưu trữ thông tin
  • Hệ thống thông tin doanh nghiệp
  • Hệ thống thông tin xã hội
  • Hệ thống thông tin địa lý
  • Hệ thống hỗ trợ ra quyết định
  • Hệ thống điều khiển quá trình
  • Hệ thống thông tin đa phương tiện
  • Khai phá dữ liệu
  • Thư viện số
  • Nền tảng máy tính
  • Tiếp thị kỹ thuật số
  • World Wide Web
  • Truy hồi thông tin
Bảo mật
  • Mật mã học
  • Các phương pháp hình thức
  • Hacker bảo mật
  • Dịch vụ bảo mật
  • Hệ thống phát hiện xâm nhập
  • Bảo mật phần cứng
  • Bảo mật mạng
  • An toàn thông tin
  • Bảo mật ứng dụng
Tương tác người–máy
  • Thiết kế tương tác
  • Điện toán xã hội
  • Điện toán khắp nơi
  • Trực quan hóa
  • Khả năng tiếp cận
Tương tranh
  • Tính toán tương tranh
  • Tính toán song song
  • Điện toán phân tán
  • Đa luồng
  • Đa xử lý
Trí tuệ nhân tạo
  • Xử lý ngôn ngữ tự nhiên
  • Biểu diễn tri thức và suy luận
  • Thị giác máy tính
  • Lập kế hoạch và lên lịch tự động
  • Phương pháp tìm kiếm
  • Phương pháp điều khiển
  • Triết học về trí tuệ nhân tạo
  • Trí tuệ nhân tạo phân tán
Học máy
  • Học có giám sát
  • Học không có giám sát
  • Học tăng cường
  • Học đa tác vụ
  • Kiểm chứng chéo
Đồ họa
  • Hoạt hình
  • Thực tế mở rộng
    • Tăng cường
    • Hỗn hợp
    • Ảo
  • Kết xuất
  • Thao túng hình ảnh
  • Bộ xử lý đồ họa
  • Nén ảnh
  • Mô hình hóa dạng khối
Điện toán ứng dụng
  • Điện toán lượng tử
  • Thương mại điện tử
  • Phần mềm doanh nghiệp
  • Toán học tính toán
  • Vật lý tính toán
  • Hóa học tính toán
  • Sinh học tính toán
  • Khoa học xã hội tính toán
  • Kỹ thuật tính toán
  • Điện toán khả vi
  • Y tế tính toán
  • Nghệ thuật số
  • Xuất bản điện tử
  • Chiến tranh mạng
  • Bầu cử điện tử
  • Trò chơi video
  • Soạn thảo văn bản
  • Vận trù học
  • Công nghệ giáo dục
  • Quản lý tài liệu
  • Thể loại Thể loại
  • Đề cương
  • Thuật ngữ
  • x
  • t
  • s
Công nghệ phần mềm
Lĩnh vực
  • Lập trình máy tính
  • DevOps
  • Công nghệ phần mềm thực nghiệm
  • Công nghệ phần mềm thử nghiệm
  • Các phương pháp hình thức
  • Kỹ thuật yêu cầu
  • Công nghệ phần mềm dựa trên tìm kiếm
  • Kỹ thuật độ tin cậy trang web
  • Công nghệ phần mềm xã hội
  • Triển khai phần mềm
  • Thiết kế phần mềm
  • Bảo trì phần mềm
  • Thử nghiệm phần mềm
  • Phân tích hệ thống
Khái niệm
  • Trừu tượng hóa
  • CI/CD
  • Khả năng tương thích
    • Khả năng tương thích ngược
    • Lớp tương thích
    • Chế độ tương thích
    • Khả năng tương thích xuôi
    • Sự không tương thích phần mềm
  • Công nghệ phần mềm dựa trên thành phần
  • Mô hình hóa dữ liệu
  • Kiến trúc doanh nghiệp
  • Đặc tả chức năng
  • Ngôn ngữ mô hình hóa
  • Mẫu hình lập trình
  • Phần mềm
  • Khảo cổ học phần mềm
  • Kiến trúc phần mềm
  • Quản lý cấu hình phần mềm
  • Quy trình/phương pháp phát triển phần mềm
  • Chất lượng phần mềm
  • Đảm bảo chất lượng phần mềm
  • Hệ thống phần mềm
  • Kiểm định và xác minh phần mềm
  • Phân tích cấu trúc
    • Phân tích cốt yếu
Định hướng
  • Agile
  • Hướng khía cạnh
  • Hướng đối tượng
  • Bản thể học
  • SDLC
  • Hướng dịch vụ
Mô hình
Phát triển
  • Agile
  • EUP
  • UML thực thi được
  • Mô hình tăng dần
  • Mô hình lặp
  • Mô hình nguyên mẫu
  • RAD
  • Scrum
  • Mô hình xoắn ốc
  • UP
  • Mô hình V
  • Mô hình thác nước
  • XP
  • Kỹ thuật hướng mô hình
  • Kỹ thuật khứ hồi
Khác
  • CMMI
  • Mô hình dữ liệu
  • Mô hình ER
  • Mô hình chức năng
  • Mô hình thông tin
  • Siêu mô hình hóa
  • Mô hình đối tượng
  • SPICE
  • Mô hình hệ thống
  • Mô hình khung nhìn
Ngôn ngữ
  • IDEF
  • SysML
  • UML
  • USL
Lĩnh vực liên quan
  • Kỹ thuật máy tính
  • Khoa học máy tính
  • Khoa học thông tin
  • Quản lý dự án
  • Quản lý rủi ro
  • Kỹ thuật hệ thống
  • Thể loại Thể loại
  • Trang Commons Commons

Từ khóa » Khóa Học Lập Trình Là Gì