Последние комментарии

Для меня эта страница - это удобный способ смотреть, что нового происходит в комментариях и сразу находить заметку, не заходя в админку. Думаю, она будет полезна и тебе.


n

Интересный спор завязался - компиляторы, трансляторы, интерпретаторы. Только PHP не компилируется ни во что в своем истенном обличии. Он именно интерпретируется и результат интерпретации сохраняется в кэше и потом используется. Чтобы выполнить программу на PHP ее не нужно компилировать или преобразовывать в промежуточный IL код, достаточно скормить интерпретатору.

Но так как PHP - это язык, для него легко написать и компилятор, который будет создавать промежуточный код и сохранять его в файле. Это делает Zend. В этом случае PHP становится родственником C#. Но в своем истинном обличии компиляции нет. Есть интерпретация с сохранением результата в кэш.


Денис

Sat, написал:
"Ведь компилятор по сути это выражение мысли программиста через синтаксис языка. А интерпретатор это то же самое выражение мысли программиста ограниченная синтаксисом языка, вернее ограниченная разработчиками интерпретатора."
Ты хоть знаешь, что такое компилятор, и что такое интерпретатор? А если знаешь, то понимаешь между ними разницу? Смысл твоей фразы таков, что интерпретируемый язык накладывает ограничения, а компилируемый ограничен только фантазией программиста. Возьмем исходный код программы на языке С++, в чем разница если я применю компилятор, а потом исполню её через интерпретатор? Разница лишь в том, что компилятор преобразует весь исходный код на С++ в машинный код. А интерпретатор, исполняет программу шаг за шагом(командой за командой). Когда C# или PHP переводят программу в некий промежуточный язык(IL), это называется трансляцией, а не компиляцией. А потом PHP эту программу на IL интерпретирует в машинный код.


Sat

К стати тема довольно неоднозначна и обширна.
Если вы не знаете ни одного языка программирования, но чувствуете тягу к познанию, тягу к творчеству и хотите в добавок получать за это деньги, при этом в как можно сжатые сроки, можно порекомендовать связку PHP+CSS+JS+HTML+любаяБД. Во первых изучается быстро, во вторых сейчас по моему каждому первому нужен сайт, причем свой и при этом на оригинальном движке с нуля (но это с опытом).

Если вам нужно создать что то монументально-исторически ценное, полезное и нужное тогда системные языки типа С,C++,Delphi,FreePascal.

Если вы фанат линукса то FreePascal,C,C++

Если разработать свою ось, или работать на чистом железе (ARM платформа, микроконтроллеры) то без знания Assembler и архитектур не обойтись.

Если на специализированных платформах (сотовые телефоны и подобное) Java или Си.

Если вы хотите осчастливить мир кросс платформенной онлайн игрой, и у вас есть талант то ActionScript или JavaScript...

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


Sat

Rejackt - тут тоже свои нюансы. C# компилирует и выполняет свой код через прослойку называемую .NET Framework. Так же и PHP именно компилируется в некий промежуточный байт-код (ну по крайне мере сейчас). Мы как то проводили исследования на функцию

$a = array('a','b','c');
for ($i=0;$i<count($a);$i++) {
...
}

Так вот до 4 версии по моему, PHP как интерпретатор КАЖДЫЙ раз вычислял count($a), а теперь не вычисляет, вернее преобразовывает во что то примерное:

$a = array('a','b','c');
$c = count($a);
for ($i=0;$i<$c;$i++) {
...
}

Так же дело обстоит и с C#. IL представление кода компилируется под тот процессор, который в данном случае на целевой машине. Поэтому скомпилированный код запускается всё быстрее и быстрее, но все же, сама среда выполнения (интерпретатор PHP или .NET Framework) не дают ПОЛНОГО доступа к командам процессора. Есть языки ВУ для которых реализовано два режима работы, например Delphi и визуальные компоненты (которые сперва компилируются а потом исполняются собственной средой разработки)

Так вот, сейчас почти все интерпретаторы стараются разработать по возможности более приближенно к компиляторам по функциям и отличие одних от других только в начальном загрузчике. Посмотрите на C# и его DLL-ки. Так что исполняемый код порой у интерпретируемых языков даже лучше и быстрее компилируемых, но нельзя объять необъятное и впихнуть в интерпретатор все возможности компилятора. Ведь компилятор по сути это выражение мысли программиста через синтаксис языка. А интерпретатор это то же самое выражение мысли программиста ограниченная синтаксисом языка, вернее ограниченная разработчиками интерпретатора.


Sat

Вот если бы разыскивался программист с огромным опытом работы на разных языках программирования, не зависимо от места проживания, тут бы проблем не было. :)


Степан

Нельзя говорить, что Путин совсем ничего не сделал для России, это не правильно. Доходы от нефти идут на погашение дефицита бюджета, которого сейчас нет, доходы от нефти это внешний фактор, а есть ещё внутренний фактор роста экономики, например рост промышленного производства, ВВП, и т.д. То, что не ходил на выборы, молодец, ты уже всё равно не наш соотечественник, поэтому тебе всё равно. Лично я ходил на голосование и голосовал не за Путина, а за другого кандидата. Да, выборы не честные, но быть к этому безразличным не правильно. Да, Путин всё равно выиграет, но это не повод, чтобы отмазываться, что голосовать не надо.


Андрей

Голосовал за Прохорова. Госмашина неэффективна. Только свободный рынок и конкуренция.

А вообще, моно, конечно, голосовало за Пу, то это не более 30%, думаю, а то и меньше. Лет через 50, если доживём, узнаем, как было на самом деле. Думаю, просто выдали нужные цифры и всё. Я не верю, что за Пу могло проголосовать больше 50%, это нереально. Второй тур не сделали только для того, чтобы создать впечатление легитимности власти. А что, правильно сделали, воровать голоса, так воровать по-крупному. Пошли ва-банк и выиграли, народ сидит в дураках, ничего не поменялось и меняться не будет. Не более трети чинуш и полицаев так и будут доить осталные две трети населения. Россиия долго не протянет такими темпами.


Денис

Ancort,
Тема звучит так: "С чего начинать изучать программирование". т.е. человеку нужно узнать что такое массивы, что такое двумерные массивы, как с помощью различных циклов их обходить и т.д. Для этого хорошо подойдет Паскаль или Си. Ну зачем здесь твой PHP или JavaScript??? Да, эти языки очень востребованные, но не с них надо изучать программирование. В один прекрасный вечер чувак задумался о своем будущем, и решил стать программистом, а что надо изучить? О везде требуется PHP, тогда с него я и начну... Как мне кажется строгая типизация прежде.


Rejackt

Та и не так то сложно понять разницу комп./интерп. - мне кажется любой человек хотя бы немного знакомый с программированием поидее знает разницу... ТА даже и не знакомый - ито должен знать... вроде как всё очевидно... имхо ))


Rejackt

Sat, не сочтите за грубость.. но не совсем удачный пример с компиляторами/интерпретаторами
Может както так: компилятор делает из текста программы код процессора (ну почти всегда), интерпретатор - читает его построчно и выполняет написанные команды ))...
Отсюда логичные выводы: компилятор делает более быструю программу, и позволяет коду получить больше ф-й железа,
а интерпретатор - менее быструю программу и меньше ф-й...
ХОТЯ как посмотреть: если интерпретатор предоставляет библиотечные ф-и для работы с железом... то какбы - разница остаётся тока в скорости работы ))
И ОПЯТЬ ЖЕ НО: даже в скомпилированном коде не всё железо доступно: попищать то в винде так просто и не сможете.. даже на ассемблере, - винда по рукам даст.. нада через её библиотеки или сторонние..


О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне