Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 95 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
95
Dung lượng
3,59 MB
Nội dung
Lê Minh Hoàng 2 Nội dung bài học Cách giao tiếp với máy tính bằng “ngôn ngữ” Quá trình phát triển của ngôn ngữ lập trình Ngôn ngữ bậc cao Trình dịch Một chương trình viết bằng ngôn ngữ bậc cao được xử lý như thế nào? Thuật toán là gì?, Kỹ thuật giải quyết các bài toán tin học như thế nào? 3 Kiến trúc máy tính Bộ xử lý trung tâm (CPU: Central Processing Unit) Bộ tính toán số học và logic ALU: Arithmetic-Logic Unit Bộ điều khiển CU: Control Unit Những t/p khác: Bộ đồng xử lý toán học, bộ tăng tốc đồ họa và video… Bộ nhớ trong (Main Memory) Secondary Storage Thiết bị vào (Input Device) Thiết bị ra (Output Device) 4 Mô hình xử lý thông tin Input Output Process Storage Input: Bàn phím (Keyboard), Con chuột (Mouse), Máy quét (Scanner), … Processing: Máy tính thực hiện chương trình. Output: Màn hình (Monitor), Máy in (Printer), Máy Fax … Storage: Đĩa cứng (Hard Disks), Đĩa mềm (Floppy Disks), Băng từ (Magnetic tape)… 5 Minh họa một hệ thống máy tính CPU Memory I/O Interface Floppy Disks CD/DVD Monitor Hard Disk Keyboard Mouse Scanner Printer Speakers Tape 6 Phần cứng và Phần mềm Phần cứng (Hardware) Xử lý dữ liệu bằng cách tiến hành các lệnh theo chỉ thị. Cung cấp đầu vào (Input) và đầu ra (Output) qua các cổng giao tiếp thiết bị ngoại vi. Phần mềm Chứa các chỉ thị lệnh giao cho phần cứng thực hiện. Là chương trình được viết để thực hiện một nhiệm vụ cụ thể nào đó. Phần mềm hệ thống (System Programs): Là chương trình viết ra để điều khiển máy tính, các thiết bị nối với máy tính, các chương trình khác chạy trên máy tính. Ví dụ: Hệ điều hành Windows, Linux, Mac OS. Phần mềm ứng dụng (Application Programs): Là chương trình viết ra để thực hiện một tác vụ chuyên biệt nào đó. Ví dụ: Phần mềm soạn thảo văn bản MS Office, Phần mềm gõ tiếng Việt Unikey v.v… 7 Ngôn ngữ của máy tính Nhắc lại: Phần cứng tiến hành các lệnh theo chỉ thị Phần mềm cung cấp các chỉ thị cho phần cứng thực hiện Vậy chỉ thị là? Ngôn ngữ của máy tính Chỉ thị được biểu diễn bằng một dãy các số 0 và 1. VD 100010011101. Cách mã hóa chỉ thị dưới dạng số nhị phân gọi là ngôn ngữ máy Số 0 và 1 được gọi là chữ số nhị phân (Binary Digit hoặc bit) Một dãy số nhị phân được gọi là mã nhị phân (Binary Code) 8 Ví dụ về ngôn ngữ máy Ví dụ Độ dài quãng đường = Vận tốc x Thời gian Cho biết vận tốc = 15 (km/h) Thời gian = 6 (h) Tính độ dài quãng đường Giả sử 1001 chỉ thị máy tính đọc giá trị ở 4 bit tiếp theo. 1011 chỉ thị máy tính nhân giá trị đang có với giá trị ở 4 bit tiếp theo và nhớ lại giá trị kết quả 1000 chỉ thị máy tính cho biết kết quả đang nhớ Lệnh 1001 1111 1011 0110 1000 9 Hợp ngữ (Assembly language) Đặc điểm Dùng lệnh hợp ngữ thay vì viết mã nhị phân của từng chỉ thị. Có một chương trình (Assembler) dịch lệnh hợp ngữ ra ngôn ngữ máy. Cho phép dùng biến số, chấp nhận biểu diễn thập phân và thập lục phân của số nguyên. Ví dụ Viết LOAD thay cho 1001, MULT thay cho 1011, STOR thay cho 1000. Chương trình trở thành LOAD 15 MULT 6 STOR Chương trình dễ đọc và khó bị lỗi hơn ngôn ngữ máy 10 Ngôn ngữ bậc cao (High level languages) Ngôn ngữ bậc cao: Basic, FORTRAN, COBOL, Pascal, C, Object Pascal, C++… Để tính quãng đường (L) cho biết vận tốc (V) và thời gian (T), có thể viết lệnh trong ngôn ngữ Pascal: L := V * T Trình dịch: Là chương trình dịch các lệnh viết trong ngôn ngữ bậc cao thành những chỉ thị tương đương trong ngôn ngữ máy. [...]... Science) vào nội dung thi, và ngôn ngữ lập trình được sử dụng là Pascal (Pascal trở thành ngôn ngữ chính thức tới năm 1999, sau đó chuyển sang C++ 2 năm, và hiện tại là Java) Một công ty là Borland International đưa ra thị trường Turbo Pascal (TP) một phần mềm dịch tích hợp Pascal TP là một cuộc cách mạng: TP có thay đổi một số thành phần trong Pascal chuẩn, làm cho ngôn ngữ tiện dụng hơn Tốc độ tuyệt vời:... lại là đặc tính dễ hiểu, chặt chẽ, định kiểu mạnh của Pascal Thế hệ ngôn ngữ mới Những người phát triển Pascal: Pascal chỉ kém C++ ở phần lập trình hướng đối tượng → Mượn tất cả đặc tả hướng đối tượng trong C++ đưa vào Pascal tạo ra ngôn ngữ mới Object Pascal Những người phát triển C++: C++ kém Pascal chủ yếu do tính dễ dãi và khó hiểu → Hạn chế bớt một số tính năng nguy hiểm của C++, tăng cường hệ... nghĩa: Các luật cú pháp, từ khoá trong ngôn ngữ lập trình bậc cao thường gợi nhớ nghĩa của dòng lệnh bằng tiếng Anh and: và or: hoặc If x > 0 then : Nếu x là số dương thì làm while a > b do : Thực hiện chừng nào vẫn thấy a > b 17 Pascal Programming Language Ngôn ngữ lập trình Pascal được đặt tên theo tên nhà toán học Pháp Blaise Pascal Đặc điểm Dễ học Blaise Pascal 1623-1662 Thích hợp để mô... Studio: $799) 24 So, Why learn Pascal? C and C++ are very symbolic languages… {…} vs begin…end and very dangerous for students… Type-casting and pointer arithmetic is common, making it easy to crash programs and write in buffer overruns Another reason: Speed Instead of several hours design graphic user interface in C++ We can do 10 minutes in Delphi The last reason: Pascal was well-suited for teaching... tự như Step over, nhưng nếu dòng lệnh là một lời gọi chương trình con, FP sẽ thực hiện việc nhảy tới mã lệnh chương trình con để tiếp tục gỡ rối Goto Cursor (F4): Chạy ở chế độ gỡ rối, chạy tới dòng chứa con trỏ thì dừng lại Until return (Alt+F4): Khi đang gỡ rối một chương trình con, chức năng này cho chạy tiếp tới khi chương trình con thoát ra thì dừng lại để tiếp tục gỡ rối Run Directory…: Chọn thư... độ tuyệt vời: Trên những máy tính chậm hơn khoảng 1000 lần máy tính hiện nay, TP có thể dịch vài ngàn dòng lệnh trong 1 phút Pascal+ TP trở thành chuẩn PC Magazine sử dụng Pascal cùng với hợp ngữ để đăng các đoạn mã nguồn Từ phiên bản 1.0 tới phiên bản 7.0 Borland liên tục mở rộng ngôn ngữ Pascal Phiên bản 7.0 là phiên bản mạnh và ổn định nhất Nói thêm: Người thiết kế TP là Anders Hejlsberg, chính là... tạo ra ngôn ngữ C++ Tất cả lập trình viên đều nhận ra nhiều ưu điểm của lập trình OOP so với lập trình cấu trúc, trong khi đó Pascal ra đời khi OOP chưa phổ biến… TP chấm dứt phát triển: Borland tuyên bố “Sẽ không có Borland (Turbo) Pascal 8 mà thay vào đó sẽ là Delphi” 22 Lịch sử: Object Pascal vs C# Nhược điểm của ngôn ngữ C++ Quá nhiều ký hiệu, chương trình C++ khác biệt rất nhiều ngôn ngữ tự nhiên... Thiếu rất nhiều kiểu dữ liệu cơ bản (như kiểu ký tự) và con trỏ Giới khoa học và lập trình viên chuyển sang sử dụng FORTRAN… ALGOL không và không bao giờ được chấp nhận rộng rãi và chỉ còn là ngôn ngữ để…mô tả thuật toán 19 Lịch sử: Pascal ra đời Wirth phát minh PASCAL Vào những năm 1960s, một vài nhà khoa học máy tính vẫn cố gắng mở rộng ALGOL Trong số đó có Wirth (Swiss Federal Institute of Technology)... khả thi (Xem lại các khái niệm mã đối tượng và mã khả thi ở đây) Đặc tính của PASCAL Hướng tới dữ liệu, định kiểu mạnh mẽ Cho phép người dùng tự định nghĩa những kiểu dữ liệu mới Đọc chương trình rất giống với ngôn ngữ tự nhiên (Tiếng Anh) Chương trình PASCAL rất dễ hiểu 20 Lịch sử: Pascal trở thành chuẩn Đầu những năm 1980s, Pascal được sử dụng rộng rãi Có 2 lý do: Cơ quan kiểm tra giáo dục Mỹ quyết... Less overhead and fewer ways for students to get program into trouble Pascal is an official language of IOI Answer in one sentence Because it’s not scary like C, not dangerous like C++, and not abstract like Java 25 Free Pascal Delphi is too complex and too expensive for students… Open-source community created a project named Free Pascal Compiler FPC is Delphi compatible Can be used in many platforms: . bậc cao: Basic, FORTRAN, COBOL, Pascal, C, Object Pascal, C++… Để tính quãng đường (L) cho biết vận tốc (V) và thời gian (T), có thể viết lệnh trong ngôn ngữ Pascal: L := V * T Trình dịch: Là. Disks), Băng từ (Magnetic tape)… 5 Minh họa một hệ thống máy tính CPU Memory I/O Interface Floppy Disks CD/DVD Monitor Hard Disk Keyboard Mouse Scanner Printer Speakers Tape 6 Phần cứng và Phần. Arithmetic-Logic Unit Bộ điều khiển CU: Control Unit Những t/p khác: Bộ đồng xử lý toán học, bộ tăng tốc đồ họa và video… Bộ nhớ trong (Main Memory) Secondary Storage Thiết bị vào (Input Device) Thiết