Các lớp của hệ thống máy khách

Một phần của tài liệu xây dựng hệ thống giải bài toán smt hiệu năng cao – phần máy trạm (Trang 27 - 30)

5.2.2.1. Lp config: lớp này được xây dựng để chứa các quy ước việc giao tiếp cũng như các thành phần mặc định của hệ thống như các thẻ, tên tệp tin đầu vào mặc định, thời gian ngắt mặc định, tên tệp tin chứa dữ liệu được trả về

5.2.2.2. Lp Client: Có chức năng mở kết nối, gửi bài toán từ tệp tin lên máy chủ và nhận về kết quả.

5.2.2.3. Lp NetSolver: bao gồm các hàm thiết lập tùy chọn cho người sử dụng. Cụ thể:

- void setPath (String Path): Thiết lập đường dẫn cho tệp tin đầu vào. Có thể là một đường dẫn đến một tệp tin sẽ được xây dựng sau đó bởi chính người sử dụng. Hoặc cũng có thể là một tệp tin đã chứa nội dung bài toán SMT cân gửi lên máy chủ.

- void setOutput (String Path): Thiết lập đường dẫn cho tệp tin lưu giữ kết quả được trả về. Xin lưu ý rằng việc thiết lập đường dẫn bao gồm cả tên tệp tin.

- void Solve (): thực thi việc gửi và nhận bài toán SMT. Thực chất hàm này chỉ gọi một đối tượng của lớp Client và thực thi đối tượng ấy.

Việc xây dựng bài toán SMT sẽ dựa trên các hàm API được xây dựng bởi các lớp sau. Xin lưu ý rằng các hàm API được xây dựng hoàn toàn dựa trên bộ luật cú pháp của ngôn ngữ đầu vào SMT đã được đưa ra ở trên.

5.2.2.4. Lp Bench_attribute: Được xây dựng dựa trên bảng 5.

- Bench_attribute (String Bench_name) : Định nghĩa một thuộc tính Benchmark đầu vào với tên là Bench_name.

- Void setLogic (String LogicName): thiết lập tên logic của Benchmark - void setStatus (String stt) : thiết lập thuộc tính Status cho Benchmark - void setFormulas (Formula F): thiết lập Formula cho Benchmark. - void setAssumtion (Formula f): thiết lập Assumtion cho Benchmark - void setAnnotation (annotation an): thiết lập Annotation cho

Benchmark

- void setNotes (String note): thiết lập Note cho Benchmark

- void setExtrasorts (Identifier[] id): Thiết lập Extrasorts cho Benchmark

- void setExtrafuns (func_decl[] funcs): Thiết lập Extrafuns cho Benchmark

- void setExtrapreds (pred_decl[] preds): thiết lập Extrapreds cho Benchmark

- void printBench (): ghi Benchmark vừa thiết lập ra tệp tin được chỉ định

5.2.2.5. Lp Formula: Được xây dựng dựa trên bảng 2 để đưa ra các công thức trong bài toán SMT, Các hàm hỗ trợ xây dựng bao gồm: - Formula (boolean b): khai báo một Formula với giá trị là giá trị của

một biến logic

- Formula (fvarDecl fvar): Khai báo một Formula với giá trị là một khai báo hàm.

- Formula (Identifier id): khai báo một Formula với giá trị là một định danh Identifier.

- Formula (Identifier id, Term te[]): khai báo một Formula từ một định danh Identifier và một mảng không rỗng các phần tử Term

- Formula (Arith_symb ar, Term te[]): khai báo một Formula từ một (hoặc một chuỗi) các phép toán và một mảng không rỗng các phần tử Term

- Formula (Term te[]): khai báo một Formula với từ khóa “distinct” và

một mảng không rỗng các phần từ Term

- void Setvalue (String val): đặt giá trị của Formula theo tùy biến ( khi công thức của người sử dụng không thể xây dựng dựa trên các hàm API trong lớp formula)

- Formula orOperator (Formula a1, Formula a2): phép “or” giữa hai công thức

- Formula xorOperator (Formula a1, Formula a2): phép “xor” giữa hai công thức

- Formula iffOperator (Formula a1, Formula a2): phép “iff” giữa hai công thức

- Formula impliesOperator (Formula a1, Formula a2): phép “implies”

giữa hai công thức

- Formula existsFomular (quant_var[] qv, Formula f): công thức được xây dựng với từ khóa “exists” (adsbygoogle = window.adsbygoogle || []).push({});

- Formula forallFomular (quant_var[] qv, Formula f): công thức được xây dựng với từ khóa “forall”

- Formula letFormula (varDecl var,Term t, Formula f): công thức được xây dựng với từ khóa “let”

- Formula fletFormula (fvarDecl fvar,Formula f1, Formula f2): công

thức được xây dựng với từ khóa “flet”

5.2.2.6. Lp func_decl: khai báo một hàm của bài toán SMT, được xây dựng dựa trên (3) bảng 3.

- func_decl (double d, Identifier id): khai báo một hàm từ giá trị một số thực và định danh Identifier

- func_decl (Identifier id1, Identifier[] id): khai báo một hàm từ giá trị một định danh Identifier và một mảng không rỗng định danh Identifier - func_decl (Arith_symb ar,Identifier[] id): khai báo một hàm từ một

hoặc chuỗi các phép toán và mảng không rỗng các định danh id

5.2.2.7. Lp pred_decl: khai báo một vị từ của bài toán SMT, được xây dựng dựa trên (4) bảng 3

- pred_decl (Identifier[] id): khai báo một vị từ với giá trị của một dịnh danh id

- pred_decl (Arith_symb ar, Identifier[] id): khai báo một vị từ từ một (hoặc một chuỗi) các phép toán ar và một mảng các định danh id - pred_decl (Identifier id1, Identifier[] id): khai báo một vị từ từ một

đinh danh id1 và mảng các định danh id

Một phần của tài liệu xây dựng hệ thống giải bài toán smt hiệu năng cao – phần máy trạm (Trang 27 - 30)