4.1. Công cụ MuJava
4.1.2.1. Các toán tử đột biến mức phương thức
Bảng 4.1 sẽ mơ tả ngắn gọn các tốn tử đột biến mức phương thức (hay còn gọi là các toán tử đột biến truyền thống) thực thi trong MuJava. Các toán tử được xem xét cho MuJava bao gồm việc sửa đổi các biểu thức bằng cách thêm, thay thế hoặc xóa các tốn tử nguyên thủy. MuJava chứa 6 loại toán tử nguyên thủy:
1. Toán tử số học 2. Toán tử quan hệ 3. Toán tử điều kiện 4. Toán tử chuyển dịch 5. Toán tử logic
6. Toán tử gán
MuJava sử dụng 12 toán tử đột biến mức phương thức. Trong đó, một số tốn tử có các dạng short-cut. Vì vậy, nó được chia thành nhị nguyên (binary), đơn nguyên (unary) và short-cut.
Bảng 4.1- Các toán tử đột biến mức phương thức cho MuJava
a) Toán tử số học
Các toán tử số học thực hiện các phép tính số học trên tất cả các đối số op (là các nguyên và số thực có dấu phẩy động). Các toán tử số học sử dụng trong Java là:
Các phép tốn hai ngơi (nhị ngun): op + op, op - op, op * op, op / op, op % op
Các phép tốn một ngơi (đơn ngun): +op, -op Short-cut: op++, ++op, op--, --op
Các toán tử số học sử dụng trong MuJava được giải thích như sau: AORB / AORU / AORS: Thay thế toán tử số học
Loại Toán tử Mô tả
Số học
AORB AORU AORS
Thay thế toán tử số học (nhị nguyên) Thay thế toán tử số học (đơn nguyên) Thay thế toán tử số học (short-cut) AOIU
AOIS
Thêm toán tử số học (đơn nguyên) Thêm tốn tử số học (short-cut) AODU
AODS
Xóa tốn tử số học (đơn ngun) Xóa tốn tử số học (short-cut) Quan hệ ROR Thay thế toán tử quan hệ
Điều kiện
COR Thay thế toán tử điều kiện COI Thêm toán tử điều kiện COD Xóa tốn tử điều kiện
Chuyển dịch SOR Thay thế toán tử chuyển dịch
Logic
LOR Thay thế toán tử logic LOI Thêm toán tử logic LOD Xóa tốn tử logic
Các tốn tử này thay thế các toán tử số học nhị nguyên, đơn nguyên, short- cut bằng các toán tử nhị nguyên, đơn nguyên, short-cut khác tương ứng.
AOIU /AOIS: Thêm toán tử số học
Các toán tử này thêm toán tử số học đơn nguyên và short-cut tương ứng. AODU /AODS: Xóa tốn tử số học
Các tốn tử này xóa các tốn tử số học đơn ngun và short-cut tương ứng.
b) Toán tử quan hệ
Các toán tử quan hệ so sánh giá trị của hai toán hạng op. Các toán tử quan hệ sử dụng trong Java: op > op, op >= op, op < op, op <= op, op == op, op != op
Các toán tử quan hệ sử dụng trong MuJava được giải thích như sau: ROR: Thay thế toán tử quan hệ
Toán tử này thay thế các toán tử quan hệ bằng các toán tử quan hệ khác.
c) Toán tử điều kiện
Các toán tử điều kiện hoặc các toán tử bitwise thực hiện các phép tính trên các giá trị nhị phân của các toán hạng. Các toán tử điều kiện được sử dụng trong Java là:
Các tốn tử điều kiện hai ngơi: op && op, op ||op, op & op, op | op và ^ (bitwise XOR)
Tốn tử điều kiện một ngơi: !op COR: Thay thế toán tử điều kiện
Toán tử này thay thế các toán tử điều kiện hai ngơi bằng các tốn tử điều kiện hai ngôi khác.
COI: Thêm toán tử điều kiện
Toán tử này thêm các tốn tử điều kiện một ngơi. COD: Xóa tốn tử điều kiện
Tốn tử này xóa các tốn tử điều kiện một ngơi.
d) Toán tử chuyển dịch
Các toán tử chuyển dịch sử dụng trong Java: op >> op, op << op, op >>> op Các toán tử chuyển dịch sử dụng trong MuJava được giải thích như sau: SOR: Thay thế toán tử chuyển dịch
Toán tử này thay thế các toán tử chuyển dịch hai ngơi bằng tốn tử chuyển dịch hai ngơi khác.
e) Tốn tử logic
Các tốn tử logic thực hiện các phép so sánh logic để thu được kết quả Boolean cho các câu lệnh so sánh. Các toán tử logic sử dụng trong Java là:
Toán tử logic hai ngôi: op & op, op |op, op ^ op Toán tử logic một ngơi: ~op
Các tốn tử logic sử dụng trong MuJava được giải thích như sau: LOR: Thay thế toán tử logic
Toán tử này thay thế các tốn tử logic hai ngơi bằng các toán tử logic hai ngơi khác.
LOI: Thêm tốn tử logic
Tốn tử này thêm các tốn tử logic một ngơi khác. LOD: Xóa tốn tử logic
Tốn tử này xóa các tốn tử logic một ngơi khác.
f) Toán tử gán
Các toán tử gán sử dụng trong Java là :
Short –cut : op += op, op -= op, op *= op, op /= op, op %= op, op &= op, op |= op, op ^= op, op <<= op, op >>= op, op >>>= op
Các toán tử gán sử dụng trong MuJava được giải thích như sau: ASRS: Thay thế tốn tử gán
Toán tử này thay thế toán tử gán short-cut bằng toán tử gán short-cut khác.