В чем разница между PHP и ASP? - PullRequest
0 голосов
/ 25 января 2010

ASP - это скомпилированный язык или нет? конечно да. PHP - это интерпретируемый язык. Я также однажды разработал приложение asp с IDE VS 2008. Но есть большая разница между ASP и PHP. Каковы различия?

Ответы [ 5 ]

9 голосов
/ 26 января 2010

ASP - это скомпилированный язык или нет? конечно, это так.

Нет, это не так.

Первая причина, по которой ASP не является скомпилированным языком, заключается в том, что не существует в качестве скомпилированного языка. Язык не компилируется и не интерпретируется. Язык просто это . Язык - это набор абстрактных математических правил. Интерпретация или компиляция - это черты языковой реализации , они не имеют ничего общего с языком . Каждый язык может быть реализован либо компилятором, либо интерпретатором; большинство современных высокопроизводительных языковых реализаций фактически используют и и переключаются между ними в зависимости от того, какая из них быстрее в конкретном контексте.

Вторая причина, по которой ASP не является компилируемым языком, заключается в том, что он не является языком. Это рамки. Вы можете написать код для ASP на любом языке, для которого существует механизм ActiveScripting (например, Ruby через ActiveRuby), но чаще всего можно написать код на VBScript или JScript.

Что приводит нас к третьей причине: реализации VBScript и JScript, которые поставляются с Windows, а также ActiveRuby и все другие известные мне движки ActiveScripting, являются чистыми интерпретаторами , они не может скомпилировать. Итак, хотя я и писал выше, что любой язык может быть реализован с использованием компилятора или интерпретатора, all механизмы исполнения языка, которые поддерживаются ASP, истолковано .

PHP - это интерпретируемый язык.

Снова: нет, это не так.

Причина первая та же, что и выше: просто нет такой вещи, как интерпретируемый язык.

И, в отличие от ASP, подавляющее большинство реализаций PHP на самом деле do содержат компилятор. Некоторые даже являются чистыми компиляторами, у них даже нет интерпретатора. (Например, Phalanger всегда компилируется прямо в CIL, без какой-либо интерпретации. P8 может интерпретировать или компилировать прямо в байт-код JVM, или и то и другое: интерпретировать, собирать данные профиля при интерпретации, а затем JIT-компилировать в байт-код JVM.)

Но есть большая разница между ASP и PHP. В чем различия?

ASP - (независимый от языка) фреймворк, PHP - это язык. Это довольно большая разница. (На самом деле PHP содержит один маленький кусочек, который на других языках обычно считается частью веб-фреймворка: интеграция с веб-сервером.)

PHP обладает высокой переносимостью между операционными системами, архитектурами ЦП и веб-серверами: есть реализация PHP практически для любой среды исполнения, от JVM до CLI и Parrot, для естественного запуска практически во всех операционных системах на солнце. ASP довольно тесно связан с Microsoft Internet Information Server, Microsoft Windows и платформой ПК. (Были некоторые другие реализации, но они довольно неясны и больше не доступны.)

PHP имеет множество различных реализаций (Phalanger, Quercus, Pipp, PHC, P8, Zend), ASP имеет только одну. (Как я уже сказал, два других больше не доступны.)

Подавляющее большинство реализаций PHP является открытым исходным кодом (я думаю, что единственным исключением является P8), в то время как все три известные мне реализации ASP являются проприетарными.

PHP активно разрабатывается и поддерживается, в то время как ASP в значительной степени устарел и был заменен ASP.NET.

3 голосов
/ 25 января 2010

Вы могли бы быть более конкретным с вашим вопросом.

Самым большим отличием, конечно, является то, что ASP программируется на языке .NET и использует .NET Framework в качестве основы. PHP, конечно, программируется на PHP и с его библиотекой.

.NET компилируется в байт-код, и этот байт-код интерпретируется / соединяется во время выполнения. Существуют также кэши байт-кода для PHP (например, APC), и существует активный проект, целью которого является создание собственного кода из него с использованием LLVM.

2 голосов
/ 25 января 2010

ASP интерпретируется ASP.NET компилируется. ASP - это не язык, а фреймворк, вы можете кодировать ASP.NET на нескольких языках. ASP.NET работает только на IIS (если вы не используете Mono и кто помнит Chilisoft ASP здесь?)

1 голос
/ 25 января 2010

Я заметил, что при попытке добавить хостинг на GoDaddy.com PHP был для пакета Linux, а ASP был для пакета Windows.

0 голосов
/ 25 января 2010

ASP - проприетарная реализация с закрытым исходным кодом, PHP - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...