>> Ben tu prétends que les langages interprétés, ne sont "pas plus lent"
Non. Le code compilé est, comme on s'y attend souvent, plus efficace que le code interprété. Je dis que « interprété = lent » n'est pas vrai, ce qui est différent.
Tu as énormément de variation au sein des langages interprétés...
Un interprète qui ressemble à
(define (ev e env)
(cond
((symbol? e) (cdr (assoc e env)))
...))
(define (eval e) (ev e '()))
sera bien plus lent qu'un interprète qui ressemble à
(define (ev e)
(cond
((symbol? e) (lambda (k env) (k (assoc e env))))
...))
(define (eval e) ((ev e) (lambda (v) v) '()))
(Ensuite, je persiste en disant que le bench est injuste : dès que tu optimises ton langage compilé, il est quasiment impossible pour une version (même pas forcément interprétée) non-optimisée de faire mieux !)
[^] # Re: Logique
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Mais ils sont fous. Évalué à 4.
Non. Le code compilé est, comme on s'y attend souvent, plus efficace que le code interprété. Je dis que « interprété = lent » n'est pas vrai, ce qui est différent.
Tu as énormément de variation au sein des langages interprétés...
Un interprète qui ressemble à
(define (ev e env)
(cond
((symbol? e) (cdr (assoc e env)))
...))
(define (eval e) (ev e '()))
sera bien plus lent qu'un interprète qui ressemble à
(define (ev e)
(cond
((symbol? e) (lambda (k env) (k (assoc e env))))
...))
(define (eval e) ((ev e) (lambda (v) v) '()))
(Ensuite, je persiste en disant que le bench est injuste : dès que tu optimises ton langage compilé, il est quasiment impossible pour une version (même pas forcément interprétée) non-optimisée de faire mieux !)