Khám Phá Ngôn Ngữ Lập Trình và Kỹ Thuật Phát Triển Phần Mềm

Chuyên khảo phân tích Discovering computers 2005, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo., phục vụ nghiên cứu và ứng dụng thực tiễn

Trường đại học

SEFIT HUT

Chuyên ngành

Ngôn Ngữ Lập Trình

Người đăng

Ẩn danh

Thể loại

tiểu luận
68
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. CHƯƠNG 1: PROGRAMMING LANGUAGES – CLASSIFICATIONS AND PROGRAM DEVELOPMENT

1.1. Programming Develop Webpages: HTML, scripting languages, Programming languages và languages

1.2. Phân loại NNLT trang web Multimedia procedural programming languages authoring programs

1.3. Sự khác biệt giữa structured design và object-oriented programming languages

1.4. Những ngccấu trúc cơ sở dùng thiết kế các giải pháp nonprocedural languages and tools pháp cho chương trình

1.5. Chương trình máy tính và ngôn ngữ lập trình Computer Programs and Programming Languages

1.6. Machine code và Assembly language

1.7. High level language

1.8. Phân loại theo thời gian các ngôn ngữ lập trình

1.9. Software crisis

1.10. Các thế hệ ngôn ngữ lập trình Language generations

1.11. Phân loại theo mức độ trừu tượng Level Instructions Memory handling

1.12. Declarative và Non-declarative programming

1.13. Procedural Languages – Ngôn ngữ thủ tục

1.13.1. Trình dịch – Compiler

1.13.2. Thông dịch – Interpreter

1.13.3. BASIC

1.13.4. COBOL

1.13.5. C

1.14. Object-Oriented Programming Languages

1.14.1. C++

1.14.2. Java

1.14.3. Visual programming language

1.14.4. Visual Studio .NET 2003, 2005

1.14.5. Delphi

1.14.6. PowerBuilder

1.15. Nonprocedural Languages and Program Development Tools

1.15.1. RPG (Report Program Generator)

1.15.2. NN thế hệ IV fourth-generation language (4GL)

1.15.3. Application generator

1.15.4. Visual Basic for Applications (VBA)

1.16. Web Page Development

1.16.1. HTML (Hypertext Markup Language)

1.16.2. Các hiệu ứng đặc biệt và các phần tử tương tác được thêm vào trang Web

1.16.3. Common gateway interface (CGI)

1.16.4. Scripting language

1.16.5. Dynamic HTML (DHTML)

1.16.6. XHTML, XML, và WML

1.16.7. Web page authoring software

1.17. Multimedia Program Development

1.18. Các Programming Languages khác

1.19. Chu trình phát triển Program development cycle

1.19.1. Step 1 — Analyze Requirements

1.19.2. Step 2 — Design Solution

1.19.2.1. Sơ đồ phân cấp chức năng – hierarchy chart
1.19.2.2. Object-oriented (OO) design
1.19.2.3. Cấu trúc tuyển chọn

Tóm tắt

I. Khám Phá Ngôn Ngữ Lập Trình Tổng Quan và Phân Loại

Ngôn ngữ lập trình là công cụ thiết yếu trong việc phát triển phần mềm. Chúng cho phép lập trình viên giao tiếp với máy tính thông qua các lệnh và cú pháp cụ thể. Có nhiều loại ngôn ngữ lập trình, từ ngôn ngữ bậc thấp như machine code đến ngôn ngữ bậc cao như Python và Java. Mỗi loại ngôn ngữ có những đặc điểm và ứng dụng riêng, phục vụ cho các mục đích khác nhau trong phát triển phần mềm.

1.1. Các Loại Ngôn Ngữ Lập Trình Chính

Ngôn ngữ lập trình được phân loại thành nhiều nhóm khác nhau, bao gồm ngôn ngữ thủ tục, ngôn ngữ hướng đối tượng, và ngôn ngữ hàm. Mỗi loại có cách tiếp cận riêng trong việc giải quyết vấn đề và phát triển ứng dụng.

1.2. Tầm Quan Trọng của Ngôn Ngữ Lập Trình

Ngôn ngữ lập trình không chỉ là công cụ để viết mã mà còn là phương tiện để thể hiện ý tưởng và giải pháp cho các bài toán phức tạp trong phát triển phần mềm.

II. Những Thách Thức Trong Phát Triển Phần Mềm Hiện Nay

Phát triển phần mềm đối mặt với nhiều thách thức, từ việc đảm bảo chất lượng mã nguồn đến việc quản lý thời gian và ngân sách. Các vấn đề như 'software crisis' đã làm nổi bật sự cần thiết phải cải tiến quy trình phát triển phần mềm.

2.1. Khủng Hoảng Phần Mềm Nguyên Nhân và Hệ Quả

Khủng hoảng phần mềm xảy ra khi các dự án phần mềm không đáp ứng được yêu cầu về thời gian và chất lượng. Điều này dẫn đến sự gia tăng chi phí và giảm năng suất của lập trình viên.

2.2. Các Vấn Đề Thường Gặp Trong Phát Triển Phần Mềm

Các vấn đề như lỗi mã, thiếu tài liệu, và sự không đồng nhất trong quy trình phát triển là những thách thức lớn mà các lập trình viên phải đối mặt.

III. Phương Pháp Phát Triển Phần Mềm Hiệu Quả

Để giải quyết các thách thức trong phát triển phần mềm, nhiều phương pháp đã được áp dụng. Các phương pháp này không chỉ giúp cải thiện quy trình mà còn nâng cao chất lượng sản phẩm cuối cùng.

3.1. Agile Phương Pháp Linh Hoạt Trong Phát Triển

Phương pháp Agile tập trung vào việc phát triển phần mềm theo từng giai đoạn ngắn, cho phép lập trình viên phản hồi nhanh chóng với thay đổi và yêu cầu mới từ khách hàng.

3.2. DevOps Tích Hợp Phát Triển và Vận Hành

DevOps là một phương pháp kết hợp giữa phát triển phần mềm và vận hành, giúp tăng cường sự hợp tác giữa các nhóm và cải thiện quy trình phát triển.

IV. Ứng Dụng Thực Tiễn Của Ngôn Ngữ Lập Trình Trong Phát Triển Phần Mềm

Ngôn ngữ lập trình được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, từ phát triển ứng dụng web đến lập trình di động. Mỗi ngôn ngữ có những ứng dụng cụ thể, phù hợp với nhu cầu của từng lĩnh vực.

4.1. Lập Trình Web Sử Dụng HTML CSS và JavaScript

HTML, CSS và JavaScript là bộ ba ngôn ngữ chính trong phát triển web. Chúng cho phép tạo ra các trang web tương tác và hấp dẫn.

4.2. Lập Trình Di Động Ngôn Ngữ Nào Được Sử Dụng

Trong phát triển ứng dụng di động, các ngôn ngữ như Swift cho iOS và Kotlin cho Android đang trở thành tiêu chuẩn, giúp lập trình viên xây dựng ứng dụng hiệu quả hơn.

V. Kết Luận Tương Lai Của Ngôn Ngữ Lập Trình và Phát Triển Phần Mềm

Tương lai của ngôn ngữ lập trình và phát triển phần mềm hứa hẹn sẽ có nhiều thay đổi với sự phát triển của công nghệ mới như trí tuệ nhân tạo và điện toán đám mây. Các ngôn ngữ lập trình sẽ tiếp tục phát triển để đáp ứng nhu cầu ngày càng cao của thị trường.

5.1. Xu Hướng Mới Trong Ngôn Ngữ Lập Trình

Các ngôn ngữ lập trình mới như Rust và Go đang thu hút sự chú ý nhờ vào hiệu suất và tính an toàn của chúng trong phát triển phần mềm.

5.2. Tác Động Của Trí Tuệ Nhân Tạo Đến Ngôn Ngữ Lập Trình

Trí tuệ nhân tạo đang thay đổi cách lập trình viên phát triển phần mềm, từ việc tự động hóa mã đến việc tối ưu hóa quy trình phát triển.

24/07/2025

Trích đoạn nội dung tài liệu

Kỹ Thuật lập trình Programming technique Vũ Đức Vượng SE­FIT­HUT vuongvd@yahoo.de Programming Languages – classifications and Program Development Nội dung Programming Develop DevelopWeb Webpages pages: :HTML, HTML,scripting scriptinglanguages, Programminglanguages languages và và languages, Phân DHTML, DHTML, XML, WML, và các phần mềềmmtạ XML, WML, và các ph ầ n m tạoo Phânloloạại iNNLT NNLT trang trangweb web Multimedia Multimedia procedural proceduralprogramming programminglanguages authoring languages authoringprograms programs 66bbướ ướccccủủaachu chutrình trìnhphát pháttri triểểnnph phầầnnmmềềmm visual visualprogramming programminglanguages Six languages Sixsteps stepsininthe theprogram programdevelopment developmentcycle cycle SSựựkhác khácbibiệệttgigiữữaastructured structureddesign designvà và object­oriented object­orientedprogramming programminglanguages languages object­oriented design object­oriented design Nh Nhữững ngccấấuutrúc trúcccơơssởởdùng dùngthi thiếếttkkếếcác cácgigiảải i nonprocedural nonprocedurallanguages languagesand andtools tools pháp phápcho cho ch ương chươ ngtrình trình Next Chương trình máy tính và ngôn ngữ lập trình Computer Programs and Programming Languages Computer program?  Tập hợp các lệnh chỉ dẫn cho máy tính thực hiện nhiệm vụ  Programming language—Dùng để viết các lệnh, chỉ thị Next programming language ­ NNLT Một NNLT là 1 hệ thống các ký hiệu dùng để liên lạc , trao đổi 1 nhiệm vụ/ thuật toán với máy tính, làm cho nhiệm vụ được thực thi. Nhiệm vụ được thực thi gọi là một computation, nó tuân thủ một độ chính xác và những quy tắc nhất quán. Với mỗi ngôn ngữ lập trình, ta cần nắm bắt, thấu hiểu những gì ?: Có 3 thành phần căn bản của bất cứ 1 NNLT nào. Mô hình ngôn ngữ­Language paradigm là những nguyên tắc chung cơ bản, dùng bởi LTV để xd chương trình.

Cú pháp ­ Syntax của ngôn ngữ là cách để xác định cái gì là hợp lệ trong cấu trúc các câu của ngôn ngữ; Nắm được cú pháp là cách để đọc và tạo ra các câu trong các ngôn ngữ tự nhiên, như tiếng Việt, tiếng Anh. Tuy nhiên điều đó không có nghĩa là nó giúp chúng ta hiểu hết ý nghĩa của câu văn. Ngữ nghĩa – semantics của 1 program trong ngôn ngữ ấy. Rõ ràng, nếu không có semantics, 1 NNLT sẽ chỉ là 1 mớ các câu văn vô nghĩa; như vậy semantics là 1 thành phần không thể thiếu của 1 ngôn ngữ.

Có rất nhiều NNLT, khoảng 1000 ngôn ngữ ( 60’s đã có hơn 700) – phần lớn là các ngôn ngữ hàn lâm, có mục đích riêng hay phát triển bởi 1 tổ chức để phục vụ cho bản thân họ. Cont… Về cơ bản, chỉ có 4 mô hình NNLT chính: Imperative (Procedural) Paradigm (Fortran, Pascal, C, Ada, .) Object­Oriented Paradigm (SmallTalk, Java, C++) Logic Paradigm (Prolog) Functional Paradigm (Lisp, ML, Haskell) Những tính chất cần có với các chương trình phần mềm là : • Tính mềm dẻo scalability / Khả năng chỉnh sửa modifiability • Khả năng tích hợp integrability / Khả năng tái sử dụng reusability • Tính chuyển đổi, linh hoạt, độc lập phần cứng ­portability • Hiệu năng cao ­performance • Độ tin cậy ­ reliability • Dễ xây dựng • Rõ ràng, dễ hiểu • Ngắn gọn, xúc tích HOẠT ĐỘNG CỦA 1 CHƯƠNG TRÌNH Computer program được nạp vào primary memory như là 1 tập các lệnh bằng ngôn ngữ máy, tức là một dãy tuần tự các số nhị phân ­ binary digits. Tại bất cứ một thời điểm nào, computer sẽ ở một trạng thái state nào đó. Đặc điểm cơ bản của trạng thái là con trỏ lệnh instruction pointer trỏ tới lệnh mã máy tiếp theo để thực hiện.

Thứ tự thực hiện các nhóm lệnh mã máy được gọi là luồng điều khiển flow of control. MACHINE CODE Máy tính chỉ nhận các tín hiệu điện tử ­ có, không có ­tương ứng với các dòng bits. 1 program ở dạng đó gọi là machine code. Ban đầu chúng ta phải dùng machine code để viết CT: Quá phức tạp, giải quyết các bài toán lớn là không tưởng 23fc 0000 0001 0000 0040 0cb9 0000 000a 0000 0040 6e0c 06b9 0000 0001 0000 0040 60e8 ASSEMBLY LANGUAGE NN Assembly là bước đầu tiên của việc xây dựng cơ chế viết movl #0x1,n chương trình tiện lợi compare: hơn – thông qua các ký hiệu, từ khóa và cả mã cmpl #oxa,n máy.

cgt end_of_loop Tất nhiên, để chạy được acddl #0x1,n các chương trình này thì phải dịch (assembled) bra compare thành machine code. end_of_loop: Vẫn còn phức tạp, cải thiện không đáng kể HIGH LEVEL LANGUAGE Thay vì dựa trên phần cứng (machine­oriented) cần tìm cơ chế dựa trên vấn đề (problem­ oriented) để tạo chương trình. Chính vì thế high(er) level languages – là các ngôn ngữ lập trình gần với ngôn ngữ con người hơn – dùng các từ khóa giống tiếng anh – đã được xây dựng như : Algol, Fortran, Pascal, Basic, Ada, C, … PHÂN LOẠI THEO THỜI GIAN 1940s : Machine code 1950s Khai thác sức mạnh của MT: Assembler code, Autocodes, first version of Fortran 1960s Tăng khả năng tính toán: Cobol, Lisp, Algol 60, Basic, PL/1 ­­­ nhưng vẫn dùng phong cách lập trình cơ bản của assembly language. 1970s Bắt đầu cuộc khủng hoảng phần mềm “software crisis”: 1.

Giảm sự phụ thuộc vào máy – Tính chuyển đổi. Tăng sự đúng đắn của CT ­Structured Programming, modular programming và information hiding. Ví dụ : Pascal, Algol 68 and C. Continue … 1980s Giảm sự phức tạp – object orientation, functional programming.

1990s Khai thác phần cứng song song và phân tán (parallel và distributed) làm cho chương trình chạy nhanh hơn, kết quả là hàng loạt ngôn ngữ mở rộng khả năng lập trình parallel cũng như các NNLT chuyên parallel như occam được xd. 2000s Genetic programming languages, DNA computing, bio­computing? Trong tương lai : Ngôn ngữ lt lượng tử : Quantium ? SOFTWARE CRISIS Khái niệm software crisis bao gồm hàng loạt vấn đề nảy sinh trong việc phát triển phần mềm trong hững năm 1960s khi muốn xd những hệ thống phần mềm lớn trên cơ sở các kỹ thuật phát triễn thời đó.Thời gian và giá thành tăng vọt tới mức không thể chấp nhận nổi.Năng xuất của các LTV không đáp ứng yêu cầu.Chất lượng phần mềm bị giảm, thấp. Để giải quyết các vấn đề kể trên , chuyên ngành software engineering ra đời. CÁC THẾ HỆ NNLT LANGUAGE GENERATIONS Generation Classification 1st Machine languages 2nd Assembly languages 3rd Procedural languages 4th Application languages (4GLs) 5th AI techniques, inference languages 6th Neural networks (?), others….

Computer Programs and Programming Languages Low­level languages và high­level languages? Low­level Low­level High­level High­level language language language language Machine­dependent Machine­dependent Machine­independent Machine­independent Ph Phụụthu thuộộccph phầầnnccứứng, ng,ch chỉỉch chạạyy Th ường Thườ ngkhông khôngph phụụthu thuộộccph phầầnn trên trênmmộộttloloạại imáy máytính tính ccứứng, ng,có cóth thểểchchạạyytrên trênnhi nhiềềuuloloạại i máy máytính tínhkhác khácnhau nhau Machine Machinevàvàassembly assemblylanguages languageslàlà ngôn ngônng ngữữbbậậccth thấấpp low­level low­level p. 664 Next PHÂN LOẠI THEO MỨC ĐỘ TRỪU TƯỢNG Level Instructions Memory handling Low level Dạng bits – giống Truy cập và cấp phát languages các lệnh machine trực tiếp bộ nhớ High level Dùng các biểu thức Truy cập và cấp phát languages và các dòng điều bộ nhớ qua các khiển xác định lệnh, toán tử ­ Very high Hoàn toàn trừu operators Che dấu hoàn toàn level tượng, độc lập việc truy cập và tự languages phần cứng động cấp phát bộ nhớ Next DECLARATIVE và NON­DECLARATIVE PROGRAMMING Các ngôn ngữ có thể chia thành 2 nhóm : “Cái gì cần lưu trữ” và “Lưu trữ như thế nào”. Nhóm 1 gọi là declarative (tường thuật ­chính là functional và logic languages). Nhóm 2 gọi là non­declarative hay procedural (tức là các ngôn ngữ mệnh lệnh).

13-3 Next Procedural Languages – Ngôn ngữ thủ tụ c Procedural language? Lập trình viên viết các chỉ Sử dụng hàng loạt các từ thị hướng dẫn cho máy tính giống tiếng anh để viết các cai gì cần làm và làm như chỉ thị ­ instructions thế nào Các ngôn ngữ thông dụng là Còn gọi là third­generation BASIC, COBOL, PASCAL, language (3GL) C,C++ và JAVA Click to view animation p. 666 Next Procedural Languages Trình dịch ­ Compiler?  Là chương trình thực hiện biên dịch toàn bộ chương trình nguồn thành mã máy trước khi thực hiện Next Procedural Languages Thông dịch ­ Interpreter?  Là chương trình dịch và thực hiện từng dòng lệnh của chương trình cùng lúc  Không tạo ra object program p. 13-5 Next Procedural Languages BASIC?  Được thiết kế để cho những người mới học tiếp can một cách đơn giản NNLT  Beginner’s All­purpose Symbolic Instruction Code p. 13-6 Next Procedural Languages COBOL?  Dùng cho các ứng dụng trong kinh tế  Các lệnh giống tiếng anh làm cho code dễ đọc, viết và chỉnh sửa  COmmon Business­Oriented Language Next Procedural Languages C?  Là NNLT rất mạnh, ban đầu được thiết kế để lập trình hệ thống ­write system software  Yêu cầu những kỹ năng lập trình chuyên nghiệp Next Object­Oriented Programming Languages Object­oriented programming (OOP) language? Dùng để hỗ trợ Lợi ích cơ bản Event­driven— C++ và Java thiết kế HĐT là khả năng tái Hướng sự kiện là các NN hoàn object­oriented sử dụng ­reuse Kiểm tra để toàn HĐT design existing objects trả lời một tập object­oriented các sự kiện languages Object là Event là hành phần tử chứa động mà đựng cả dữ chương trình liệu và các cần đáp ứng thủ tục xử lý dữliệu Next Object­Oriented Programming Languages C++?  Chứa đựng các thành phần của C, loại bỏ những nhược điểm và thêm vào những tính năng mới để làm việc với object­oriented concepts  Được dùng để phát triển các Database và các ứng dụng Web Next Object­Oriented Programming Languages Java?  Phát triển bởi Sun Microsystems  Giống C++ nhưng dùng trình dịch just­ in­time (JIT) để chuyển source code thành machine code Next Object­Oriented Programming Languages Visual programming language? Visual programming Cung cấp giao diện environment (VPE) trực quan hoặc đồ họa Cho phép developers kéo và thả các objects để tạo source code để xd programs Đôi khi được gọi là fifth­generation language LTV viết và phát triển chương trình Thường được dùng trong các segments trong môi trường RAD (rapid application development) Next Object­Oriented Programming Languages Visual Studio .NET 2003, 2005?  Bước phát triển của visual programming languages và RAD tools  .NET là tập hợp các công nghệ cho phép program chạy trên Internet  Visual Basic .NET 2003­5 dùng để xd các ct hướng đối tượng phức tạp Step 1.

LTV gán các thiết kế giao thuộc tính cho mỗi diện người object trên form. dùng ­ user interface. LTV viết code để xác định các action cần thực hiện đối với các sự kiện cần thiết. LTV kiểm tra Next application.

Object­Oriented Programming Languages Delphi?  Là 1 công cụ lập trình trực qua mạnh  Hợp với những ứng dụng chuyên nghiệp và Web lớn Next Object­Oriented Programming Languages PowerBuilder?  Một công cụ lập trình trực quan mạnh khác  Phù hợp với các ứng dụng Web­based hay các ứng dụng lớn HĐT ­ object­oriented applications Next Nonprocedural Languages and Program Development Tools  nonprocedural languages và program development tools? Nonprocedural Nonprocedural Program ProgramDevelopment Development Language Language Tools Tools LTV LTVviviếếttcác cáclệ lệnh nhgigiốống ng Các Cácch chươươngngtrình trìnhthân thiệệnn thânthi titiếếng nganh anhhoac hoacttươươngngtáctácvvớới i vvớới ing ngườ ười issửửddụụng ngđđượ thiếết t ượccthi môi môitrtrườường ngtrtrựựccquan quanđđểể kkếếđđểểtrtrợợgiúp giúpccảảLTVLTVlẫ lẫnn nhnhậậnnđđượượcccác cácddữữliliệệuutừtừ ngngườười issửửddụụng trongviviệệcctạ ngtrong tạoo files fileshay haydatabase database chươ ch ương ngtrình trình p. 674 Next Nonprocedural Languages and Program Development Tools RPG (Report Program Generator)?

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ