Я не уверен, что это делает COBOL (это точно не было когда-то), но я не могу даже вообразить, что кому-то это небезразлично.
Fortran существует с Fortran 90, но требует, чтобы вы использовали recursive
ключевое слово, чтобы сказать ему, что подпрограмма рекурсивна.
PL / I был почти таким же - рекурсия поддерживалась, но вы должны были явно указать ей, какие процедуры были рекурсивными.
Я сомневаюсь, что есть намного больше чем это все же. Когда вы дойдете до этого, запрет рекурсии был в основном тем, что IBM сделала в своих языковых разработках по той простой причине, что мэйнфреймы IBM (360/370/3090 / ...) не поддерживают аппаратный стек. Когда большинство языков пришло от IBM, они в основном запрещали рекурсию. Теперь, когда все они приходят из других мест, рекурсия всегда разрешена (хотя я должен добавить, что несколько других машин, особенно оригинальный Cray 1, также не имели аппаратной поддержки стека).