Tính cấp thiết của đề tài
Hiện nay ngành công nghiệp phần mềm đang rất phát triển ở nhiều lĩnh vực. Trên thực tế, tùy theo yêu cầu của mỗi lĩnh vực mà chúng ta có thể lựa chọn các ngôn ngữ lập trình sao cho phù hợp. Chúng ta có thể thấy rất nhiều ngôn ngữ lập trình được sử dụng ngày nay, trong đó phải kể đến một số ngôn ngữ lập trình rất được phổ biến như là Java, C#, Objective-C, JavaScript, SQL, PHP. Các ngôn ngữ lập trình hàm như OCaml, ML, F# cũng dần được phổ biến trong khoảng thời gian gần đây. Ngôn ngữ lập trình hàm F# là ngôn ngữ có kiểu mạnh(strongly-typed) và tự suy luận kiểu (không cần phải khai báo kiểu cho các biến đầu vào), trình biên dịch có thể tự suy luận ra kiểu của các biến đầu vào đó khi dịch chương trình. Tuy nhiên các kiểu được sử dụng để gán cho các biến đầu vào của ngôn ngữ là có sẵn và được gán một cách tự động khiến người lập trình khó có thể tùy biến được trong F#.
Từ nhu cầu này, ngôn ngữ F* đã ra đời. Ngôn ngữ F* có hệ thống kiểu được xây dựng dựa trên nền tảng lý thuyết System Fω [1] nhưng được mở rộng hơn với hệ thống kiểu phụ thuộc, các kiểu được tùy chỉnh, cho phép người lập trình có thể làm mịn kiểu dữ liệu cho chặt hơn, phù hợp hơn với ý đồ.Ngoài ra F* có thể kiểm chứng tính đúng đắn của chương trình theo kiểu dữ liệu mới được làm mịn này.Tức là thông thường, chúng ta chỉ có kiểu số nguyên (int) nhưng với ngôn ngữ F* chúng ta có thể khai báo kiểu số nguyên nằm trong khoảng 0 đến 10, hay chỉ gồm các số chẵn hoặc chỉ có các số lẻ. Hơn nữa ngôn ngữ F* có thể được dịch sang những ngôn ngữ khác như OCaml, F# hoặc JavaScript để thực thi. Những vấn đề trên là cơ sở khoa học và thực tiễn để tôi thực hiện đề tài “Nghiên cứu ứng dụng ngôn ngữ F* trong phát triển phần mềm”.
Mục tiêu của luận văn
Trên cơ sở nghiên cứu lý thuyết, cài đặt, thử xây dựng các chương trình cơ bản, luận văn đã ứng dụng ngôn ngữ F* vào việc xây dựng công cụ tính tổng tài nguyên được sử dụng trong chương trình đa luồng có dùng bộ nhớ giao dịch, theo bài báo nghiên cứu của thầy hướng dẫn.
Công cụ phần mềm
Trong luận văn, tôi có sử dụng mã nguồn F* để cài đặt thuật toán chương trình. Ngoài ra còn một số công cụ hỗ trợ như Cygwin, OCaml và Visual Studio (C#, F#).
Phương pháp nghiên cứu
Để đề tài có thể đạt được kết quả như mục tiêu đặt ra, trong luận văn, tôi đã đề xuất và áp dụng các phương pháp nghiên cứu như sau:
- Nghiên cứu các tài liệu liên quan đến lập trình hàm nói chung và lập trình ngôn ngữ F* nói riêng.
- Thử nghiệm với một số chương trình cơ bản sử dụng ngôn ngữ F*.
- Ứng dụng xây dựng công cụ phần mềm: Cài đặt các thuật toán cho bài toán tính giá trị giới hạn trên tổng chi phí tài nguyên sử dụng của chương trình đa luồng códùng bộ nhớ giao dịch trong trường hợp xấu nhất.
Bố cục luận văn
– Phần mở đầu: Đưa ra tính cấp thiết của đề tài, công cụ phần mềm được sử dụng, phương pháp nghiên cứu và bố cục của luận văn.
– Chương 1: Giới thiệu tổng quan về ngôn ngữ lập trình hàm, đưa ra các đặc điểm nổi bật của ngôn ngữ lập trình hàm và giới thiệu về sự phổ biến của ngôn ngữ lập trình hàm trong ngành phát triển phần mềm hiện nay.
– Chương 2: Giới thiệu tổng quan về ngôn ngữ F*,phương pháp xây dựng một chương trình trên nền tảng F*. Đưa ra các khái niệm, tính năng cơ bản và một số tính năng nâng cấp của F* so với các ngôn ngữ khác. Khái quát và tóm tắt lại để đưa ra kết luận chung về ngôn ngữ F*.
– Chương 3: Ứng dụng F* trên một số bài toán lập trình trong thực tế.Tiến hành thực nghiệm và kiểm tra chương trình xây dựng bài toán tính giá trị giới hạn trên tổng chi phí tài nguyên của chương trình đối tượng bằng ngôn ngữ F*. Trình bày các thuật toán được sử dụng trong bài toán qua đó kết hợp các thuật toán lại với nhau để đưa ra kết quả cuối cùng cho bài toán.
– Kết luận: Tổng hợp các kết quả đã đạt được, các vấn đề cần giải quyết và hướng mở rộng của đề tài.
Lưu ý: Link tải có chứa quảng cáo được rút gọn bằng Shrinkearn.com
Mật khẩu mở tệp PDF: sharetailieu.net