Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.55 MB
Время: 0.044 c
15-1162550539
Stanislav1
2006-11-03 13:42
2006.11.19
UNIX программист


4-1149152948
Mr tray
2006-06-01 13:09
2006.11.19
Хук на активизацию окон


2-1162301177
LiberlX
2006-10-31 16:26
2006.11.19
Закрытие модального окна


2-1162743253
BuBen4ik
2006-11-05 19:14
2006.11.19
ДаунЛуадер


2-1162486053
kolj
2006-11-02 19:47
2006.11.19
реестр windows xp





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский