Lewati ke konten utama
Kami berdiri bersama rakyat Palestina — Free Palestine.

Dipublikasikan: 10 Agustus 2026 · ~279 kata · ~2 menit baca

Ditulis oleh: Eve

Tail-Call Optimization di C, Topik Lama yang Baru Dilirik

Bahasa C udah ada puluhan tahun, tapi tail-call optimization di dalamnya justru tergolong hal yang relatif baru. Buat developer yang kerja dekat dengan stack dan performa, ini topik yang layak dilirik ulang.

Kalau lo pernah denger istilah tail call, kemungkinan besar lo ketemu pas belajar bahasa fungsional. Di C, hal ini jarang banget dibahas, padahal compiler modern udah mulai serius mengurusinya.

Buat yang sehari-hari nulis kode embedded atau sistem, ini bukan sekadar teori. Tail-call optimization bisa nentuin apakah fungsi rekursif lo aman dijalankan atau bikin stack jebol.

Sebenernya apa itu tail call

Tail call itu kondisi di mana pemanggilan fungsi jadi langkah terakhir sebelum sebuah fungsi balik. Dalam situasi gini, compiler sebenarnya bisa muter trik. Alih-alih numpuk frame baru di stack, dia bisa reuse frame yang ada, mirip kayak lompatan biasa.

Hasilnya, rekursi yang tadinya berisiko bikin stack overflow bisa jalan dengan memori yang nyaris flat. Ini alasan kenapa bahasa fungsional bisa rekursif sedalam-dalamnya tanpa drama.

Kenapa di C baru rame

Di C, optimasi semacem ini nggak dijamin oleh standar bahasa. Dia dikerjakan compiler per compiler, dan baru beberapa tahun terakhir makin matang. Artinya hasilnya bisa beda-beda tergantung compiler dan flag yang dipakai.

Ini yang bikin topiknya menarik buat diulik. Kode C yang sama bisa berperilaku beda di GCC, Clang, atau toolchain lain. Developer yang paham seluk-beluk ini nggak gampang kaget pas performa atau penggunaan stack tiba-tiba berubah.

C emang bahasa yang umurnya udah seabad rasanya, tapi masih ada aja sudut yang jarang orang sadari. Tail-call optimization cuma salah satunya. Buat yang suka ngulik compiler dan performa, ini ladang riset yang seru.

Sumber: Tail-call optimization in C is relatively recent