Форум: "Прочее";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизФункция перевода файлов *.pas в структуру элементов языка ? Найти похожие ветки
← →
MultiLang (2006-10-29 04:12) [0]Написанная на паскале естественно.
Что-то типа :
1 function <параметры>
2 вычисление формулы <параметры>
3 for <параметры>
4 if <параметры>
и т. д.
Просто из такого вида будет проще перевести в Бейсик или Си++, или любой другой язык.
Если бы была такая же функция для Си или Бейсика, то также легко можно было переводить в Паскаль.
Любой язык программирования (не реального времени) - это всего лишь форма представления вышеприведённой структуры. Верно ?
← →
TUser © (2006-10-29 04:16) [1]Ничего не понял :)
← →
MultiLang (2006-10-29 04:21) [2]Надо различать элементы языковых конструкций и их конкретные реализации в языках программирования.
Скажем присваивания в Паскале записывается как ":=" , а в Си как "=".
Однако присваивание от этого не перестаёт быть присваиванием.
Также и циклы в разных языках могут записывать по-разному, однако от этого они не перестают быть циклами.
И т. д.
← →
MultiLang (2006-10-29 04:25) [3]Или блоки. Они есть во всех языках. В Паскале они обозначются как begin end, а в Сях как {}.
Не важно как обозначается. Важна суть блока. Что это нечто содержащее список таких же языковых конструкций, в том числе и других блоков.
← →
Ketmar © (2006-10-29 04:28) [4]abstract synthax trees. искать. компиляторы паскаля. искать.
← →
MultiLang (2006-10-29 04:33) [5]У меня есть компилятор Паскаля. Называется Дельфи 7.
← →
Ketmar © (2006-10-29 04:38) [6]>[5] MultiLang 29-Oct-2006, 04:33
>У меня есть компилятор Паскаля. Называется Дельфи 7.
с исходниками? тогда что ты здесь делаешь? читай исходники.
← →
MultiLang (2006-10-29 05:00) [7]
> Ketmar © (29.10.06 04:38) [6]
>
> >[5] MultiLang 29-Oct-2006, 04:33
> >У меня есть компилятор Паскаля. Называется Дельфи 7.
> с исходниками?
Конечно с исходниками.
> читай исходники.
Какие именно?
Как называется такая функция?
← →
Ketmar © (2006-10-29 05:22) [8]>[7] MultiLang 29-Oct-2006, 05:00
>Какие именно?
>Как называется такая функция?
откуда я знаю? у меня исходников D7 нет.
← →
MultiLang (2006-10-29 05:29) [9]Тогда чтож советуешь, если у тебя их нет?
← →
Ketmar © (2006-10-29 05:42) [10]>[9] MultiLang 29-Oct-2006, 05:29
>Тогда чтож советуешь, если у тебя их нет?
специально для тех, по ком проехал бронепоезд: принципы построения компиляторов везде одинаковы. одна из частей компилятора -- лексический анализ. вместе с анализом можно строить AST. я даже подсказал, где взять готовый код. но в пустую голову мозгов не вложишь -- она герметично закрыта. иди в другую песочницу развлекаться.
← →
MultiLang (2006-10-29 06:09) [11]Сам иди куда других посылаешь.
У тебя функцию попросили. А не лекцию на тему.
Есть у тебя такая фукнция? Нету. Ну и всё.
> принципы построения компиляторов везде одинаковы
Ты, что, видел исходники всех компиляторов на свете, чтобы это утверждать?
← →
Esu © (2006-10-29 06:36) [12]
> Сам иди куда других посылаешь.
> У тебя функцию попросили. А не лекцию на тему.
> Есть у тебя такая фукнция? Нету. Ну и всё.
Просто твое сообщение уж очень соблязняет на стеб :)
Ну даже если логично подумать... Есть один язык программирования, для чего писать другой ? Другой должен быть удобнее, читабельнее etc. Или наоборот в ущерб скажем скорости во главу угла ставится скажем читаемость кода. Новый язык это новый язык, он создавался не для того, что бы повторить старый....
А по поводу бронепоезда то действительно онисание языка делается не так как ты предложил... Хотя, может быть ты когда-то (сейчас вряд ли) придумаешь лучший вариант чем существуют :)
← →
MultiLang (2006-10-29 06:47) [13]
> Есть один язык программирования, для чего писать другой ?
Паскаль создавался для минимализму. А минимализм нужен только для удобства восприятия человеком.
← →
Esu © (2006-10-29 06:50) [14]
> Паскаль создавался для минимализму. А минимализм нужен только
> для удобства восприятия человеком.
Гм... Помоему C заподозрить в минимализме есть гораздо больше поводов :)
← →
MultiLang (2006-10-29 07:13) [15]Наоборот Си наполнен всякой дурью типа :
x = ++a++ + ++b++;
Таким образом в одну формулу зачем-то запихнуто пять.
Если нужно узнать какие параметры в большом количестве формул изменяются, то в Дельфи достаточно смотреть только на то, что слева, до := . А в Си надо обязательно излазить глазами все формулы от и до, что долго, неудобно и чревато кучей ошибок.
← →
Esu © (2006-10-29 07:27) [16]
> Наоборот Си наполнен всякой дурью типа :
> x = ++a++ + ++b++;
>
> Таким образом в одну формулу зачем-то запихнуто пять.
>
> Если нужно узнать какие параметры в большом количестве формул
> изменяются, то в Дельфи достаточно смотреть только на то,
> что слева, до := . А в Си надо обязательно излазить глазами
> все формулы от и до, что долго, неудобно и чревато кучей
> ошибок.
Нечитабельный код можно и на delphi сделать :)
Разве на C кто-то заставляет такое писать... Все должно быть максимально просто... Хотя почему-то начинающие программисты считают, что чем запутанней они сделают тем большими профессионалами покажутся :(
← →
MultiLang (2006-10-29 07:37) [17]
> Нечитабельный код можно и на delphi сделать :)
> Разве на C кто-то заставляет такое писать...
Именно такой - нельзя, ибо минимализм. И это правильно. А на Си можно, поэтому и делают.
← →
KilkennyCat © (2006-10-29 07:41) [18]"Когда Вы говорите, впечатление такое, что Вы - бредите" (с) всем известен.
← →
Шалом (2006-10-29 08:00) [19]
> KilkennyCat © (29.10.06 07:41) [18]
>
> "Когда Вы говорите, впечатление такое, что Вы - бредите"
> (с) всем известен.
"Менахем, уйти отсюда !" ©
← →
Anatoly Podgoretsky © (2006-10-29 11:19) [20]> Ответ на сообщение [0]
> Просто из такого вида будет проще перевести в Бейсик или Си++, или любой
> другой язык.
Наивный
← →
Anatoly Podgoretsky © (2006-10-29 11:20) [21]> Ответ на сообщение [3]
Блок уже сам по себе самодостаточен, чтобы переводить его еще в третью форму
← →
Anatoly Podgoretsky © (2006-10-29 11:21) [22]> Ответ на сообщение [7]
О какой функции ведешь речь, не говори загадками
← →
Anatoly Podgoretsky © (2006-10-29 11:21) [23]> Ответ на сообщение [9]
> Тогда чтож советуешь, если у тебя их нет?
Поделиться с другом
← →
Ketmar © (2006-10-29 11:22) [24]>[11] MultiLang 29-Oct-2006, 06:09
>У тебя функцию попросили. А не лекцию на тему.
ну и обнаглели господа ламеры... я в восхищении.
← →
Anatoly Podgoretsky © (2006-10-29 11:23) [25]> Ответ на сообщение [11]
> Сам иди куда других посылаешь.
Еще одно оскобление и ветка будет закрыта и в зависимости от степени
возможно с автором.
Многоязычный ламер самоучка. Это не оскорбление, а константация.
← →
Anatoly Podgoretsky © (2006-10-29 11:24) [26]> Ответ на сообщение [13]
> Паскаль создавался для минимализму.
С таким определением автор языка совсем не согласен, ему такое определение и
не снилось.
← →
Anatoly Podgoretsky © (2006-10-29 11:26) [27]> Ответ на сообщение [16]
> Хотя почему-то начинающие программисты считают, что чем запутанней они
> сделают тем большими профессионалами покажутся
Человек слаб, а в начале пути еще и не разумен.
← →
Belorus © (2006-10-29 11:54) [28]Ну вот и окунули лицом в результат труда второго лица...
Но заслужено...
И ещё... Объясните мне одноязычному
x = ++a++ + ++b++;
Это автор просто как обычно тупанул ? Или бывает необходимость писать такие конструкции ?
← →
Ketmar © (2006-10-29 12:10) [29]>[28] Belorus(c) 29-Oct-2006, 11:54
это, чувак, типа красиво и круто, ага.
← →
guav © (2006-10-29 12:18) [30]> x = ++a++ + ++b++;
это не дожно компилится.
← →
Ketmar © (2006-10-29 12:20) [31]>[30] guav(c) 29-Oct-2006, 12:18
>это не дожно компилится.
по идее -- не должно. проверять лень. %-) но дажеa++ + ++b
-- это уже эцих авторам языка. %-)
← →
Vga © (2006-10-29 18:07) [32]> x = ++a++ + ++b++;
Это и в самом деле не компилируется - проверял в GCC.
← →
Ketmar © (2006-10-29 18:19) [33]>[32] Vga(c) 29-Oct-2006, 18:07
>> x = ++a++ + ++b++;
>Это и в самом деле не компилируется - проверял в GCC.
да и не должно. "++a" даёт уже "value", а не ссылку на переменную. а к "value" "++" неприменимо. %-)
← →
Vga © (2006-10-29 18:26) [34]> [33] Ketmar © (29.10.06 18:19)
Это вполне понятно, но почему бы и не проверить?
А вообще, в адрес лаконичности и запутанности С есть и получше примеры... Только я их не помню.
← →
Ketmar © (2006-10-29 18:27) [35]>[34] Vga(c) 29-Oct-2006, 18:26
>Это вполне понятно
но кто скажет, что это очевидно? %-)
← →
guav © (2006-10-29 18:29) [36]> [33] Ketmar © (29.10.06 18:19)
Не так, хуже.
++a - таки увеличивает переменную и даёт эту самую переменную - вполне себе lvalue
a++ увеличивает переменную и возвращает копию старого значения, та копия уже не lvalue.
Т.е. x = (++a)++ будет работать.
Однако, операторы ++ оцениватся справа налево, потому x = ++a++ не скомпилится.
← →
Ketmar © (2006-10-29 18:32) [37]>[36] guav(c) 29-Oct-2006, 18:29
>Не так, хуже.
а, ну да. протупил я. забыл уже всю эту проктокриптографию. %-)
← →
MultiLang (2006-10-30 03:12) [38]
> Anatoly Podgoretsky © (29.10.06 11:23) [25]
> Многоязычный ламер самоучка. Это не оскорбление, а константация.
А ты старикан. Это тоже не оскорбление, а константация. Старикан, старикан, старикашечка. Гы-гы-гы !
← →
KilkennyCat © (2006-10-30 08:29) [39]> [38] MultiLang (30.10.06 03:12)
Я всегда был убежден, что воспитанность прямо зависит от образованности.
Вот Вы невоспитанны. Следовательно...
Впрочем, это видно просто из:
> Любой язык программирования (не реального времени) - это
> всего лишь форма представления вышеприведённой структуры.
> Верно ?
← →
MultiLang (2006-10-31 03:49) [40]
> KilkennyCat © (30.10.06 08:29) [39]
> Вот Вы невоспитанны.
Мнение агрессивного хама, который цепляется к другим с оскорблениями меня не интересует. Ты в пролёте.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.047 c