1. Trang chủ
  2. » Giáo Dục - Đào Tạo

TỔNG QUAN về KTLT (3t)

67 455 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Tông quan vê KTLT (3t) Programming technique SE Dept Lương Mạnh Bá balm@soict.hut.edu.vn Programming Languages – classifications and Program Development Nội dung NNLT NNLT và phân phânloại loạiNNLT NNLT Develop DevelopWeb Webpages pages: :HTML, HTML,scripting scriptinglanguages, languages, DHTML, XML, WML, phần mềm DHTML, XML, WML, phần mềmtạo tạo trang web trang web NNLT NNLTthủ thủtục tục Multimedia Multimedia authoring authoringprograms programs NNLT NNLTtrực trựcquan quan(Visual (Visualprogramming programminglanguages) languages) 66bước bướccủa củachu chutrình trìnhphát pháttriển triểnphần phầnmềm mềm Six Sixsteps stepsininthe theprogram programdevelopment developmentcycle cycle NNLT NNLThướng hướngđối đốitượng tượng(Object-oriented (Object-oriented programming languages) programming languages) Sự Sựkhác khácbiệt biệtgiữa LT LTcấu cấutrúc trúcvà LT hướng đối tượng LT hướng đối tượng NNLT NNLTphi phithủ thủtục tụcvà vàcông côngcụ cụ(Nonprocedural (Nonprocedural languages and tools) languages and tools) Những Nhữngcấu cấutrúc trúccơ cơsở sởdùng dùngthiết thiếtkế kế chương chươngtrình trình Last update SE-SoICT KTLT-1.3 Next Chương trình máy tính ngơn ngữ lập trình Computer Programs and Programming Languages Computer program?  Tập hợp lệnh dẫn cho máy tính thực nhiệm vụ  Programming language—Dùng để viết lệnh, thị Last update SE-SoICT Next KTLT-1.4 programming language - NNLT Một NNLT hệ thống ký hiệu dùng để liên lạc, trao đổi nhiệm vụ/ thuật toán với máy tính, làm cho nhiệm vụ thực thi Nhiệm vụ thực thi gọi computation, tuân thủ độ xác quy tắc qn Với ngơn ngữ lập trình, ta cần nắm bắt, thấu hiểu ?: Có thành phần NNLT Mô thức ngôn ngữ-Language paradigm nguyên tắc chung bản, dùng LTV để xây dựng chương trình Cú pháp - Syntax cách để xác định hợp lệ cấu trúc câu ngôn ngữ; Nắm cú pháp cách để đọc tạo câu ngôn ngữ tự nhiên, tiếng Việt, tiếng Anh LT Tuy nhiên điều khơng có nghĩa giúp hiểu nghĩa câu văn Ngữ nghĩa – semantics CT ngôn ngữ Rõ ràng, ngữ nghĩa, NNLT mớ câu văn vô nghĩa; ngữ nghĩa thành phần thiếu ngôn ngữ Có nhiều NNLT, khoảng 1000 ngơn ngữ ( 60’s có 700) – phần lớn ngơn ngữ hàn lâm, có mục đích riêng hay phát triển tổ chức để phục vụ cho thân họ Last update SE-SoICT KTLT-1.5 Cont… Về bản, có mơ thức 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 chương trình phần mềm : • Tính mềm dẻo scalability / Khả chỉnh sửa modifiability • Khả tích hợp integrability / Khả tái sử dụng reusability • Tính chuyển đổi, linh hoạt, độc lập phần cứng -portability • Hiệu 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 Last update SE-SoICT KTLT-1.6 HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH ❖ ❖ ❖ ❖ Computer program nạp vào BN tập lệnh ngôn ngữ máy, tức dãy số nhị phân - binary digits Tại thời điểm nào, computer trạng thái -state Đặc điểm trạng thái trỏ lệnh instruction pointer trỏ tới lệnh để thực Thứ tự thực nhóm lệnh mã máy gọi luồng điều khiển flow of control Last update SE-SoICT KTLT-1.7 MACHINE CODE ❖ ❖ ❖ ❖ Máy tính nhận tín hiệu điện tử - có, khơng có -tương ứng với dịng bits CT dạng gọi machine code Ban đầu phải dùng machine code để viết CT: Quá phức tạp, giải toán lớn không tưởng 23fc 0000 0001 0000 0040 0cb9 0000 000a 0000 0040 6e0c 06b9 0000 0001 0000 0040 60e8 Last update SE-SoICT KTLT-1.8 ASSEMBLY LANGUAGE ❖ ❖ ❖ NN Assembly bước việc xây dựng chế viết chương trình tiện lợi – thơng qua ký hiệu, từ khóa mã máy Tất nhiên, để chạy chương trình phải dịch (assembled) thành machine code Vẫn phức tạp, cải thiện không đáng kể Last update movl #0x1,n compare: cmpl #oxa,n cgt end_of_loop acddl #0x1,n bra compare end_of_loop: SE-SoICT KTLT-1.9 HIGH LEVEL LANGUAGE ❖ ❖ Thay dựa phần cứng (machine-oriented) cần tìm chế dựa vấn đề (problem-oriented) để tạo chương trình Chính high(er) level languages – ngơn ngữ lập trình gần với ngơn ngữ tự nhiên – dùng từ khóa giống tiếng anh – xây dựng : Algol, Fortran, Pascal, Basic, Ada, C, … Last update SE-SoICT KTLT-1.10 Step — Validate Design Những điều cần làm giai đoạn này? Kiểm tra độ xác của program Desk check LTV dùng liệu thử nghiệm để kiểm tra chương trình Test data liệu thử nghiệm giống số liệu thực mà CT thực p 694 Last update LTV kiểm tra logic cho tính đúng đắn thử tìm lỗi logic Logic error sai sót thiết kế gây kết khơng xác Structured walkthrough LTV mơ tả logic của thuật toán programming team duyệt theo logic chương trình SE-SoICT KTLT-1.53 Next Step — Implement Design implementation?  Viết code : dịch từ thiết kế thành program    Syntax—Quy tắc xác định cách viết lệnh Comments—program documentation Extreme programming (XP)—coding testing sau yêu cầu được xác định p 695 Fig 13-37 Last update SE-SoICT KTLT-1.54 Next Step — Test Solution Những việc cần làm ? Đảm bảo CT chạy thơng cho kết qủa xác Debugging—Tìm sửa lỗi syntax logic errors Kiểm tra phiên beta, giao cho Users dùng thử thu thập phản hồi p 696 Last update SE-SoICT KTLT-1.55 Next Step — Document Solution Là bước không quan trọng  hoạt động Rà Ràsoát soátlại lạiprogram program code—loại code—loạibỏ bỏcác cácdead dead code, code,tức tứccác cáclệnh lệnhmà mà CT CTkhông khôngbao baogiờ giờgọi gọi đến đến p 698 Last update Rà Ràsốt, sốt,hồn hồnthiện thiện Tài Tàiliệu liệu SE-SoICT KTLT-1.56 Next Tóm lại Có Cóhàng hàngloạt loạtcác cácNNLT NNLTdùng dùngđể đểviết viết computer computerprograms programs 44Mô Mơthức thứclập lậptrình trìnhcơ cơbản Chu Chutrình trìnhphát pháttriển triểnchương chươngtrình trình vàcác cáccơng cơngcụ cụđược đượcdùng dùngđể để làm làmcho choquá quátrình trìnhnày nàyhiệu hiệuquả quảhơn Last update SE-SoICT KTLT-1.57 Bàn thêm Mô thức lập trình · Programming paradigm (Mơ thức lập trình)   · Programming technique (Kỹ thuật lập trình)   · · Liên quan đến ý tưởng thuật toán để giải lớp vấn đề tương ứng · Ví dụ: 'Divide and conquer' 'program development by stepwise refinement' Programming style (Phong cách lập trình)   · · Là khuôn mẫu - pattern dùng Mơ thức lập trình máy tính Là Mơ thức cho lớp NNLT có đặc trưng Là cách trình bày computer program · Phong cách tốt giúp cho chương trình dễ hiểu, dễ đọc, dễ kiểm tra -> dễ bảo trì, cập nhật, gỡ rối, tránh bị lỗi Programming culture (Văn hóa lập trình)    · Tổng hợp hành vi lập trình, thường liên quan đến dịng ngơn ngữ lập trình · Là tổng thể Mơ thức chính, phong cách kỹ thuật lập trình Là nhân cách đạo đức lập trình khai thác CT Last update SE-SoICT KTLT-1.58 Bốn Mơ thức lập trình Bốn Mơ thức lập trình : · Imperative paradigm · Functional paradigm · Logical paradigm · Object-oriented paradigm Ngoài : · Visual paradigm · Parallel paradigms Một vài Mô thức khác : Concurrent programming Distributed programming Extreme programming … Tuy nhiên tập trung vào Mô thức sơ qua Mô thức lại Last update SE-SoICT KTLT-1.59 Imperative paradigm ❖ ❖     Với Mô thức ý tưởng lệnh gây ảnh hưởng đáng kể đến trạng thái chương trình Mỗi imperative program bao gồm: Declarative statements – lệnh khai báonhằm định nghĩa biến: tên kiểu liệu biến Các biến thay đổi giá trị trình thực Chương trình Assigment statements – Lệnh gán : gán giá trị cho biến Program flow control statements – Các lệnh điều khiển cấu trúc chương trình : Xác định trình tự thực lệnh chương trình Module: chia chương trình thành chương trình : Functions & Procedures Last update SE-SoICT KTLT-1.60 Imperative paradigm Các đặc trưng Mơ thức này: ❖ Về mặt nguyên lý ý tưởng : Công nghệ phần cứng ý tưởng Von Neumann ❖ Các bước tính tốn, thực với mục đích kiểm soát cấu trúc điều khiển· Chúng ta gọi bước mệnh lệnh - commands ❖ Tương ứng với cách mô tả công việc hàng ngày trình tự nấu ăn hay sửa chữa xe cộ ❖ Những lệnh đặc trưng imperative languages : Assignment, IO, procedure calls ❖ Các ngôn ngữ đại diện : Fortran, Algol, Pascal, Basic, C ❖ Các thủ tục hàm hình ảnh trừu tượng : che dấu lệnh CT con, coi CT lệnh ❖ Còn gọi "Procedural programming" Last update SE-SoICT KTLT-1.61 Functional paradigm ❖ ❖ Functional programming nhiều khía cạnh đơn giản rõ ràng imperative Vì nguồn gốc toán học túy: Lý thuyết hàm Trong imperative paradigm bắt nguồn từ ý tưởng công nghệ digital computer, phức tạp hơn, rõ ràng lý thuyết toán học hàm Functional programming dựa tảng khái niệm toán học hàm NNLT hàm bao gồm thành phần sau :  Tập hợp cấu trúc liệu hàm liên quan  Tập hợp hàm sở - Primitive Functions  Tập hợp toán tử Last update SE-SoICT KTLT-1.62 Functional paradigm Các đặc trưng : ❖ Về mặt nguyên lý ý tưởng : Toán học lý thuyết hàm ❖ Các giá trị tạo biến đổi non-mutable ❖ Không thể thay đổi yếu tố giá trị hợp thành ❖ Giống phương thuốc, tạo phiên giá trị hợp thành : giá trị trung gian ❖ Trừu tượng biểu thức đơn thành hàm hàm tính tốn biểu thức ❖ Các hàm giá trị ❖ Hàm liệu hoàn chỉnh, giống số, danh sách, ❖ Thích hợp với xu hướng tính tốn theo u cầu ❖ Mở khả Last update SE-SoICT KTLT-1.63 Ví dụ Functional programming function GT(n: longint) : longint; var x : longint; Begin x:=1; while (n > 0) begin x := x * n; n := n 1; end; GT := x; End; Function GT(n: longint) : Longint; Begin if n=1 then GT :=1 else GT := n* GT(n-1); End; V i functional paradigm, ta có th vi t GT n = if n = then else n * GT(n -1); Last update SE-SoICT KTLT-1.64 Logic paradigm ❖ ❖ ❖ ❖    Mơ thức lập trình logic hồn tồn khác với Mơ thức cịn lại Mơ thức đặc biệt phù hợp với lĩnh vực liên quan đến việc rút kiến thức từ kiện quan hệ – lĩnh vực trí tuệ nhân tạo Có vẻ Mơ thức khơng gắn với lĩnh vực tính tốn nói chung Trả lời câu hỏi thơng qua việc tìm giải pháp Các đặc trưng: Về nguyên tắc ý tưởng : Tự động kiểm chứng trí tuệ nhân tạo Dựa tiên đề - axioms,các quy luật suy diễn - inference rules, truy vấn - queries Chương trình thực từ việc tìm kiếm có hệ thống tập kiện, sử dụng tập luật để đưa kết luận Last update SE-SoICT KTLT-1.65 object-oriented paradigm Mô thức hướng đối tượng thu hút quan tâm tiếng từ khoảng 20 năm Lý khả hỗ trợ mạnh tính bao gói gộp nhóm logic khía cạnh lập trình Những thuộc tính quan trọng mà kích cỡ chương trình ngày lớn Ngun nhân sâu sắc dẫn đến thành công Mô thức :  Cơ sở lý thuyết đỉnh cao Mô thức Môôt CT HĐT xây dựng với khái niệm, tư tưởng làm sở, điều quan trọng theo cách tất kỹ thuật cần thiết cho lập trình trở thành thứ yếu Gủi thông điệp objects để mô tiến triển theo thời gian hàng loạt tượng giới thực Last update SE-SoICT KTLT-1.66 object-oriented paradigm … Các đặc trưng  Nguyên lý ý tưởng : Lý thuyết khái niêôm - concepts, Mô thức tương tác giới thực  Dữ liệu thao tác liệu đóng gói bjects  Cơ chế che dấu thông tin sử dụng để tránh tác động từ bên object  Các Objects tương tác với qua việc truyền thông điệp, phép ẩn dụ cho việc thực thao tác object  Trong phần lớn NNLT HĐT, objects nhóm lại classes     Objects classes có chung thuộc tính, cho phép lập trình lớp, thay lập trình đối tượng riêng lẻ Classes đại diện cho concepts objects đại diện cho tượng Classes tổ chức phả hệ có kế thừa Tính kế thừa cho phép mở rộng hay chuyên biệt hóa lớp Last update SE-SoICT KTLT-1.67 ... Fig 13-27 Các objects nhóm lại thành classes Biểu đồ lớp thể trực quan quan hệ phân cấp quan hệ classes Last update SE-SoICT KTLT- 1.49 Next Step — Design Solution Cấu trúc tuyển chọn   Chỉ... design LTV bắt đầu với thiết kế Tổng thể đến thiết kế chi tiết SE-SoICT KTLT- 1.47 Next Step — Design Solution Sơ đồ phân cấp chức năng- hierarchy chart?  Trực quan hóa modules chương trình ... languages, DNA computing, bio-computing? Trong tương lai : Ngôn ngữ LT lượng tử : Quantium ? Last update SE-SoICT KTLT- 1.12 SOFTWARE CRISIS Khái niệm software crisis bao gồm hàng loạt vấn đề nảy

Ngày đăng: 11/11/2015, 16:58

Xem thêm: TỔNG QUAN về KTLT (3t)

TỪ KHÓA LIÊN QUAN

Mục lục

    Tổng quan về KTLT (3t) Programming technique

    Programming Languages – classifications and Program Development

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

    programming language - NNLT

    HOẠT ĐỘNG CỦA 1 CHƯƠNG TRÌNH

    PHÂN LOẠI THEO THỜI GIAN

    CÁC THẾ HỆ NNLT LANGUAGE GENERATIONS

    Computer Programs and Programming Languages

    PHÂN LOẠI THEO MỨC ĐỘ TRỪU TƯỢNG

    DECLARATIVE và NON-DECLARATIVE PROGRAMMING

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w