Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > Каким компилятором вы пользуетесь?


Автор: Dronchik 25.5.2007, 15:43
Решил создать опрос по компиляторам. Сам считаю что к. от Интел подходят больше для программ. А от Мелкософт - для игр на ДиректХ. А как Вы считаете? 

Автор: Snowy 25.5.2007, 15:52
Компилятор от CodeGear  smile 

Автор: Alexeis 25.5.2007, 16:25
А где чекбоксы  smile 

Автор: nickless 25.5.2007, 18:14
ИМХО в опрос надо добавить gcc, т.к. слишком уж он распространённый чтоб быть ему среди "других".

ЗЫ, да и язык не плохо было бы уточнить

Автор: JackYF 25.5.2007, 22:01
Цитата(nickless @  25.5.2007,  18:14 Найти цитируемый пост)
ИМХО в опрос надо добавить gcc, т.к. слишком уж он распространённый чтоб быть ему среди "других".

+1. Мой любимый компилятор обидели. И вместе с ним - всех линуксоидов, которые не пользуются ни первым, ни вторым, ни третим компилятором как основным.

А под Виндой я тоже юзаю MinGW, как портированный G++/GCC. Так что добавляй gcc в варианты, да и чекбоксы действительно не помешали бы.

Автор: nerezus 26.5.2007, 10:14
компилятором от Sun и еще одним от Гвидо ванРоссума.

Автор: Бонифаций 26.5.2007, 10:54
Цитата(nerezus @  26.5.2007,  10:14 Найти цитируемый пост)
еще одним от Гвидо ванРоссума. 


Хм. От ван Россума я только интерпретатор знаю.

PS. по теме - использую gcc 

Автор: nerezus 26.5.2007, 10:59
Бонифаций, перед интерпретацией байткода он его компилит ;)
Это же VM.

Автор: Бонифаций 26.5.2007, 12:12
nerezus,  может мои знания слегка устарели, но в наше время компиляцией называлась трансляция в код процессора. Выполнение виртуальной машины считалось интерпретацией. К примеру первые паскалевские трансляторы в p-код  - считались интерпретаторами. также как и forth.

Добавлено через 4 минуты и 11 секунд
из википедии:

Компиля́тор — транслятор, который осуществляет перевод всей исходной программы в эквивалентную ей результирующую программу на языке машинных команд или на языке ассемблера.

Автор: chief39 26.5.2007, 13:32
javac

Цитата(Бонифаций @  26.5.2007,  12:12 Найти цитируемый пост)
nerezus,  может мои знания слегка устарели, но в наше время компиляцией называлась трансляция в код процессора. Выполнение виртуальной машины считалось интерпретацией. К примеру первые паскалевские трансляторы в p-код  - считались интерпретаторами. также как и forth.

Ну, или вернее выражаясь - транслятор... smile

Может как-то обрисуем язык или их список, под который опрос о компилерах? smile




Автор: nerezus 26.5.2007, 14:34
Цитата

Компиля́тор — транслятор, который осуществляет перевод всей исходной программы в эквивалентную ей результирующую программу на языке машинных команд или на языке ассемблера.
 имхо немного неверное определение, т.к. перечеркивается идущей далее информацией.

Цитата

может мои знания слегка устарели, но в наше время компиляцией называлась трансляция в код процессора.
 Угу, устарели. Бонифаций, внимательно прочитай, что написано дальше в этой же статье. А конкретнее - второй абзац раздела «Основы».


Автор: Artemios 31.5.2007, 00:48
Цитата(JackYF @  25.5.2007,  23:01 Найти цитируемый пост)
ИМХО в опрос надо добавить gcc, т.к. слишком уж он распространённый чтоб быть ему среди "других".

+1. Мой любимый компилятор обидели. И вместе с ним - всех линуксоидов, которые не пользуются ни первым, ни вторым, ни третим компилятором как основным.

А под Виндой я тоже юзаю MinGW, как портированный G++/GCC. 

 smile 
gcc

Автор: MAKCim 31.5.2007, 08:57
Цитата(Бонифаций @  26.5.2007,  12:12 Найти цитируемый пост)
может мои знания слегка устарели, но в наше время компиляцией называлась трансляция в код процессора. Выполнение виртуальной машины считалось интерпретацией. К примеру первые паскалевские трансляторы в p-код  - считались интерпретаторами. также как и forth.

не надо путать понятия трансляция и компиляция
трансляция - перевод с ЯП высокого уровня на ассемблер целевой машины
компиляция - перевод с ЯП высокого уровня на язык более высокого уровня чем ассеммблер целевой машины
по теме
естественно GCC  smile 

Автор: Бонифаций 31.5.2007, 10:47
MAKCim, действительно, путать не надо. Читаем:
http://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29

Автор: nerezus 31.5.2007, 16:22
Бонифаций, ну начну с того, что википедию пишут такие же как мы люди.
MAKCim, с трансляцией напутал. Она включает в себя понятие компиляции, ты же их разъединил.

Компиляция - частный случай трансляции, где целевым языком будут инструкции исполняемой машины.
В данном случае дотнет, джава, питон - компилируемые. Правда этот код будет потом работать в VM - именно такая целевая машина )


P.S. для сишника gcc. А нормальных IDE под плюсы еще не видел, даже VS8 поразила своей убогостью(даже по сравнению с собой же, но при работе с C#)

Автор: JackYF 1.6.2007, 16:24
Цитата(nerezus @  31.5.2007,  16:22 Найти цитируемый пост)
В данном случае дотнет, джава, питон - компилируемые.


Питон - компилируемый? А что тогда интерпретируемое?

Или введем тогда понятие машиннозависимые/машиннонезависимые?

Давайте жить дружно, и называть вещи своими именами.

Трансляция - перевод кода языка в код, понятный интерпретатору.
Компиляция - перевод кода языка в машиннозависимый, понятный процессору/ОС.

Так пойдет?

Автор: nerezus 1.6.2007, 21:12
Цитата

Компиляция - перевод кода языка в машиннозависимый, понятный процессору/ОС.
 Мм, тогда джава по твоему определению не будет компилируемой, что не есть истина, так что твое определение неверно.

Цитата

Питон - компилируемый?
 Конечно, компилируется в байткод. Есть даже плагин для компиляции в натив! (через JIT)

Автор: JackYF 1.6.2007, 23:23
Цитата(nerezus @  1.6.2007,  21:12 Найти цитируемый пост)
что не есть истина

Да? А зачем тогда Java-машина? Она не является интерпретатором?

Цитата(nerezus @  1.6.2007,  21:12 Найти цитируемый пост)
Конечно, компилируется в байткод. Есть даже плагин для компиляции в натив! (через JIT)

Native - машинный код или его мнемоника, ассемблер.

Не компилируется - транслируется в байт-код.

Автор: nerezus 2.6.2007, 00:07
Цитата

Она не является интерпретатором?
 Неа, она компилит натив во время запуска. А вот раньше она была интерпретатором.

 Но вот javac - компилятор. И он компилирует сырцы Java в байткод.

Цитата

Не компилируется - транслируется в байт-код.
 Это лишь твое мнение. В Sun, Microsoft и прочих конторах думают иначе.
И с их взглядом я как раз и согласен.

P.S. попробуй догадаться, что значит последняя буква в javac, csc, vbc.

Автор: Alexeis 2.6.2007, 00:21
JackYF, как я понял оно сейчас все динамически компилируемое. Т.е. происходит 2х этапная компиляция. Сначала машинно-независимый код, а затем в родной во время запуска.

Автор: MAKCim 2.6.2007, 11:02
Цитата(nerezus @  31.5.2007,  16:22 Найти цитируемый пост)
MAKCim, с трансляцией напутал. Она включает в себя понятие компиляции, ты же их разъединил.

предоставленные мной формулировки я не из головы взял, а из лекций по методам трансляции, мною прослушанных
уж извините, а преподавателю, тем более тому, кто вел у нас, я верю больше, чем википедии

Автор: JackYF 2.6.2007, 11:07
Цитата(nerezus @  2.6.2007,  00:07 Найти цитируемый пост)
В Sun, Microsoft и прочих конторах думают иначе.

Хотят думать иначе. Конечно, кому понравится, что язык транслируемый? Надо же делать рекламу и пиар... "Теперь наш язык стал компилируемым..."



Цитата(nerezus @  2.6.2007,  00:07 Найти цитируемый пост)
P.S. попробуй догадаться, что значит последняя буква в javac, csc, vbc.

Капец. Я могу назвать свою программу windows.exe. И что это будет означать?

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

Автор: MAKCim 2.6.2007, 15:40
Цитата(nerezus @  2.6.2007,  00:07 Найти цитируемый пост)
Но вот javac - компилятор. И он компилирует сырцы Java в байткод.

для начала нужно точно определиться: что есть компилятор, интерпретатор и транслятор

Автор: Void 2.6.2007, 16:44
И начался терминологический спор — бессмысленный и беспощадный…

Остыньте, господа.

Возьмём процессор, аппаратно исполняющий байткод Java (ARM Jazelle или IBM zAAP — смотря что вам больше по душе: мобильные телефоны или мейнфреймы smile ). Бах! И в одно мгновение javac превратился в компилятор. Фантастика. (У меня острое ощущение déjà vu, кто-то уже приводил на форуме такой аргумент).
Чёткой границы нет. Может быть потому, что она никому не нужна, кроме спорщиков?

Кстати, MAKCim, нечто, переводящее исходный код с одного высокоуровневого языка в другой, как назовём?

Автор: MAKCim 2.6.2007, 17:27
Void, 
компилятор
Цитата(MAKCim @  31.5.2007,  08:57 Найти цитируемый пост)
компиляция - перевод с ЯП высокого уровня на язык более высокого уровня чем ассеммблер целевой машины


Автор: nerezus 2.6.2007, 17:47
Цитата

предоставленные мной формулировки я не из головы взял, а из лекций по методам трансляции, мною прослушанных
уж извините, а преподавателю, тем более тому, кто вел у нас, я верю больше, чем википедии
 а, кстати да: мой препод по трансляции думал так же, как и Sun, M$ и прочие. Собственно их точку зрения и разделяю. И она не совпадает с твоим.

Автор: Любитель 24.6.2007, 12:08
Цитата(Void @  2.6.2007,  16:44 Найти цитируемый пост)
Бах! И в одно мгновение javac превратился в компилятор.

Угу. А теперь выполним обычную бинарную программу (побоку, какая платформа и тем более изначальный компилер) на какой-нибудь VMWare. Как бы то ни было пойдёт сотфверная интерпретация кода. smile

Уже видел обсуждение подобной темы на винграде smile

ЗЫ По теме gcc.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)