Saya mengajar komputasi untuk anak berusia 18 tahun. Setelah notasi polesan terbalik dijelaskan kepada mereka, satu orang bertanya mengapa cukup signifikan untuk mengikuti ujian publik. Saya menjelaskan arti historis kalkulator 70-an tetapi ini gagal untuk benar-benar mengatasi masalah ini. Begitu juga dengan aplikasi praktis atau teoretis RPN.
terminology
education
Matt Scott
sumber
sumber
Jawaban:
Saya telah menggunakan RPN beberapa kali untuk pembuatan prototipe cepat, misalnya program yang harus membaca dan menafsirkan ekspresi matematika yang disediakan pengguna.
Sedangkan notasi matematika biasa akan membutuhkan setidaknya parser rekursif (pikirkan kurung, urutan operator, dll ...), parser RPN pada dasarnya adalah tumpukan dengan
switch
pernyataan -seperti. Saya kira kombinasi kesederhanaan dan daya ekspresif inilah yang membuat HP menggunakannya pada awalnya.Namun, ini biasanya untuk pembuatan prototipe cepat dan untuk kenyamanan. Saya tidak akan pernah menganggap bahwa pengguna dapat, atau ingin, memahami RPN.
sumber
Hanya untuk memperluas jawaban / komentar sebelumnya: jangan lupa bahwa RPN masih hidup dan dalam kondisi sangat baik ... memang saat ini digunakan dalam mesin tumpukan seperti mesin virtual Java.
Dari Wikipedia: "... mesin stack mengimplementasikan stack dengan register. Operan unit logika aritmatika (ALU) selalu menjadi dua register stack teratas dan hasil dari ALU disimpan dalam register teratas stack. 'Stack machine' biasanya merujuk pada komputer yang menggunakan tumpukan Last-in, First-out untuk menyimpan nilai sementara yang singkat ketika mengeksekusi pernyataan program individual. Set instruksi melakukan sebagian besar tindakan ALU dengan operasi postfix ( notasi Reverse Polish ) yang hanya bekerja pada tumpukan ekspresi, bukan pada register data atau sel memori utama ... "
The keuntungan / kerugian dari pendekatan tersebut juga dijelaskan dalam artikel Wikipedia .
sumber
Keempat dan PostScript (dan dengan demikian PDF yang IIRC mulai sebagai pengkodean biner dari subset PostScript) adalah bahasa postfix yang lebih dikenal daripada HP pocket calculator one.
Maka itu juga merupakan pilihan yang relatif umum sebagai representasi perantara dalam kompiler sederhana.
VM yang lebih sederhana cenderung juga memiliki bahasa "mesin" postfix.
sumber
Berkenaan dengan kalkulator: Lihat Apa itu RPN?
Manfaat: RPN menghemat waktu dan penekanan tombol. Anda menghindari menggunakan dan melacak tanda kurung saat melakukan perhitungan. Prosesnya mirip dengan cara Anda belajar matematika di atas kertas.
Anda dapat melihat hasil perantara saat Anda melakukan perhitungan daripada hanya jawaban di akhir. Ini sangat membantu untuk mempelajari logika. Guru matematika menggunakan fitur ini untuk meningkatkan pemahaman siswa tentang matematika.
Hasil antara memungkinkan pengguna untuk memeriksa jawaban dan memperbaiki kesalahan dengan lebih mudah. Lebih mudah untuk mengikuti arus perhitungan. Pengguna menentukan prioritas operator.
RPN logis karena pengguna pertama-tama memberikan nomor dan kemudian memberi tahu apa yang harus dilakukan dengannya.
sumber
Seperti namanya, Notasi Polandia Terbalik, atau notasi Polandia Langsung, adalah notasi. Mereka sintaks untuk mewakili sesuatu, dan sebenarnya sintaksis efisien jika Anda mempertimbangkan persyaratan memori. Apa yang mereka wakili adalah pohon berakar, yang dapat berupa formula, pohon sintaksis abstrak (AST), dan jenis entitas lainnya, yang setiap orang memiliki hak konstitusional untuk menganggap sama sekali tidak berguna.
Kadang-kadang, seseorang harus menyimpan entitas tersebut di file. Misalnya ada sistem yang dapat mengedit atau mengubah program sebagai AST, dan mungkin perlu menyimpan representasi tersebut. Formulir Polandia nyaman. Ini memiliki keterbacaan terbatas untuk manusia, terutama untuk pohon besar, tetapi itu adalah representasi yang sangat nyaman untuk mesin.
Aspek lain dari itu adalah bahwa saya percaya studi tentang pohon dan penggunaan dasar dan representasi mereka, serta perangkat terkait (tumpukan), akan bermanfaat secara pedagogis sebagai pengantar studi masa depan dari konsep yang lebih maju (sintaks, parsing, logika, linguistik , ...).
Ini juga memiliki keuntungan karena secara konsep agak sederhana, dan mudah untuk bereksperimen di atas kertas. Ini juga merupakan kesempatan yang baik untuk membahas sintaks dan fakta bahwa sintaksis adalah representasi, dan bahwa representasi dapat bervariasi, sementara mewakili hal yang sama, dan bahwa representasi yang berbeda dapat digunakan tergantung pada kebutuhan yang harus dipenuhi (optimasi ruang, modifikasi mudah, keterbacaan manusia, keterbacaan komputer, ...).
Tetapi saya terkejut bahwa pertanyaan ini, dan jawabannya, hanya mempertimbangkan RPN, dan tidak ada yang menganggap notasi polesan langsung.
Tentunya sangat baik bahwa siswa bertanya. Tetapi menjawab pertanyaan seperti itu selalu memiliki beragam aspek. Apakah itu berguna untuk pengetahuan itu sendiri? Aku rasa ini. Apakah ini berguna sebagai latihan pedagogis? Saya pikir itu, tetapi itu sangat tergantung pada audiens yang dituju, dan hanya guru yang dapat menilai apa yang dapat dipahami. Apakah berguna untuk memahami beberapa masalah konseptual? Saya pikir begitu, tetapi sekali lagi itu tergantung pada penilaian guru tentang konsep apa yang dapat dijelaskan kepada siswa mereka.
sumber
Murid Anda benar sekali. Reverse Polish Notation tidak cukup signifikan dalam ilmu komputer untuk layak menghabiskan waktu kelas yang sangat terbatas. Alih-alih, ada begitu banyak ide konseptual luar biasa lainnya yang bisa Anda ajarkan, dengan ide-ide intelektual yang mendalam: pernikahan yang stabil, pemotongan kue, diagonalisasi dan ketidakpastian masalah penghentian, bukti interaktif dan bukti tanpa pengetahuan, dll., Dll. Ya, semua itu dapat diakses oleh anak berusia 18 tahun.
Dan, saya harap Anda memuji murid Anda karena cukup berani untuk mengajukan pertanyaan! Mereka harus menempatkan diri di langkan untuk mengangkat masalah ini. Itu berbicara dengan baik untuk gaya mengajar Anda sehingga mereka merasa nyaman menanyakan pertanyaan ini kepada Anda.
sumber
Reverse Polish Notation adalah alat yang baik dalam pendidikan saya untuk memahami pohon parse dan struktur data pohon secara umum. Ini juga berguna jika ada yang memiliki minat sama sekali dalam pemrograman di salah satu keluarga bahasa Lisp (Clojure, emacs-lisp, skema dll.).
sumber