13 Januari 2012

Akumulator

Pada topik pelajaran pemrograman rekursif, akan kita jumpai
dua macam pola; dengan dan tanpa akumulator.
Meskipun hal ini terlihat sepele dan yang terlihat hanya
terjadi pertambahan parameter pada pola dengan akumulator,
namun jauh di dalamnya terdapat konsep yang sangat penting,
yaitu tail recursion.

Pola dengan akumulator adalah program yang menggunakan tail
recursion. Keuntungannya program semacam ini tidak menggunakan
stack dalam proses rekursifnya, sehingga bisa dikatakan dapat
membuat rekursi berapapun juga.

Pada pola tanpa akumulator, setiap melakukan rekursi harus menyimpan
pointer untuk melakukan komputasi selanjutnya setelah titik rekursi. Pointer
ini biasanya disimpan dalam stack, sementara stack adalah sumber daya
yang terbatas, sehingga jika melakukan rekursi berkali-kali makan stack
akan overflow.

Lebih jauh, pada pemrograman level bawah, pola rekursif adalah haram,
mengingat keterbatasan stack tersebut. Silahkan lihat materi sistem operasi
tentang bagaimana stack ini biasanya dialokasikan secara static.

Tidak ada komentar: