È possibile sviluppare un linguaggio funzionale basato su opcode PHP?

4

È possibile sviluppare un linguaggio funzionale basato su opcode PHP?

Simile a Scala / bytecode o F # / CIL

Qualcuno ha già fatto questo?

    
posta Raffael 23.11.2011 - 12:27
fonte

2 risposte

8

Come opcodes PHP e le lingue funzionali che hai elencato sono Turing Complete la risposta è banalmente, sì, è possibile. Potrebbe essere più interessante chiedere se qualcuno lo ha già fatto.

Dopo un po 'di ricerca su google e alcuni repository di codice online sembra che ci siano persone che lavorano in modo funzionale in PHP link tuttavia non vedo nulla che avvicini a una nuova lingua implementata in opcode.

    
risposta data 23.11.2011 - 13:29
fonte
3

Come @jk. scrive , poiché l'opcode PHP è Turing Complete, è assolutamente possibile. Ma dovresti tenere a mente che Zend Engine è sviluppato e ottimizzato pensando solo a PHP e non dovrebbe essere una macchina virtuale che supporta altri linguaggi. AFAIK nessuno ha proposto di creare una nuova lingua per il motore Zend, funzionale o meno.

Ciò che potresti trovare interessante è la Parrot VM , che supporta PHP (tramite Pipp ) e una lunga lista di altre lingue , incluso il linguaggio funzionale esoterico quasi puro Unlambda e Arco , un dialetto di Lisp. Sul supporto funzionale di Parrot, Wikipedia ci dice :

Parrot has rich support for several features of functional programming including closures and continuations, both of which can be particularly difficult to implement correctly and portably, especially in conjunction with exception handling and threading. Implementing solutions to these problems at the virtual machine level prevents repeated efforts to solve these problems in the individual client languages.

PHP fornisce alcuni concetti funzionali, come funzioni anonime , ma non penso che sarebbe è utile prendere in considerazione la costruzione di un linguaggio funzionale su Zend Engine.

    
risposta data 23.11.2011 - 14:41
fonte

Leggi altre domande sui tag