Lấy cảm hứng từ một số recent TED talk, tôi muốn viết một phần nhỏ của phần mềm giáo dục. Nhà nghiên cứu đã tạo ra một số máy tính thu nhỏ trong hình dạng của các khối gọi là "Siftables".Phân tích phương trình toán học cơ bản cho phần mềm giáo dục của trẻ em?
alt text http://images.ted.com/images/ted/tedindex/embed-posters/DavidMerrill-2009.embed_thumbnail.jpg
[David Merril, inventor - with Siftables in the background.
]
Có rất nhiều ứng dụng ông sử dụng các khối trong nhưng yêu thích của tôi là khi mỗi khối là một số hoặc biểu tượng hoạt động cơ bản. Sau đó bạn có thể sắp xếp lại các khối số hoặc ký hiệu hoạt động trong một dòng, và nó sẽ hiển thị một câu trả lời trên một khối có thể thay đổi khác.
alt text http://i44.tinypic.com/m7us6g.png
Vì vậy, tôi đã quyết định rằng tôi muốn thực hiện một phiên bản phần mềm của "Math Siftables" trên thang điểm hạn chế như dự án cuối cùng của tôi cho một CS dĩ nhiên là tôi đang tham gia.
Cách được chấp nhận chung để phân tích cú pháp và diễn giải một chuỗi các biểu thức toán học là gì và nếu chúng hợp lệ, hãy thực hiện thao tác?
Đây có phải là trường hợp tôi nên triển khai trình phân tích cú pháp/lexer đầy đủ không? Tôi sẽ tưởng tượng việc giải thích các biểu thức toán học cơ bản sẽ là một vấn đề bán phổ biến trong khoa học máy tính vì vậy tôi đang tìm kiếm một cách đúng đắn để tiếp cận vấn đề này.
Ví dụ, nếu khối Math Siftable của tôi, nơi bố trí như:
[1
][+
][2
]
Đây sẽ là một chuỗi giá trị và tôi sẽ thực hiện các hoạt động cần thiết để đi đến "3".
Tuy nhiên, nếu đứa trẻ là để kéo một vài khối hoạt động cùng nhau như:
[2
][\
][\
][5
]
Nó sẽ rõ ràng là không hợp lệ.
Cuối cùng, tôi muốn có thể phân tích cú pháp và diễn giải bất kỳ số lượng chuỗi hoạt động nào với các khối mà người dùng có thể kéo cùng nhau. Bất cứ ai có thể giải thích cho tôi hoặc chỉ cho tôi các nguồn lực để phân tích các biểu thức toán học cơ bản?
Tôi muốn câu trả lời độc lập về ngôn ngữ càng nhiều càng tốt.
Tôi cảm thấy rằng không chỉ câu hỏi mà còn là mục đích của dự án là đáng khen ngợi. Hy vọng rằng, các câu trả lời nên được chiếu sáng. – Cerebrus
chúng ta sẽ không đọc ví dụ thứ hai là 2 chia cho âm 5? Hoặc làm số âm vượt quá mức độ toán học dành cho bài tập này? –
@Rex M, đúng, có lẽ đó là một ví dụ xấu. Có lẽ hai biểu tượng phân chia sẽ tốt hơn. –