В компилируемых ЯП нет рекурси ? О_о
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
В компилируемых ЯП нет рекурси ? О_о - 2011-07-08 12:42:38.140000
|
|
|
ololo__schoolboy
Сообщений: 118
Оценки: 0
Присоединился: 2011-06-14 12:42:52.573333
|
Изучаю курс на интуите(http://www.intuit.ru/department/internet/cgi/class/free/3/4.html) и читаю следующее quote:
Интерпретируемые языки программирования имеют две особенности, которых нет у компилируемых языков: рекурсия; отложенное исполнение. [/ul] Ну второе очевидно, а первое ? Мб там был какой-то тайный смысл и чтобы его понять у меня не хватает моего скудного интеллекта ?
|
|
|
RE: В компилируемых ЯП нет рекурси ? О_о - 2011-07-08 20:32:13.063333
|
|
|
slipslop
Сообщений: 115
Оценки: 0
Присоединился: 2010-12-27 20:21:35.253333
|
Ну или там просто написана чушь. Причём и первое, и второе. По крайней мере второе в том смысле, в котором его пониманию я. Доступ к лекции, кстати, только после авторизации, а регаться там лениво. Да и вообще, кинул бы ты дурное, читай лучше SICP, Art of Programming, etc.
|
|
|
RE: В компилируемых ЯП нет рекурси ? О_о - 2011-07-08 20:41:51.596666
|
|
|
ZiMMy
Сообщений: 439
Оценки: 0
Присоединился: 2010-06-19 17:04:39.420000
|
http://ru.wikipedia.org/wiki/Рекурсия#.D0.A0.D0.B5.D0.BA.D1.83.D1.80.D1.81.D0.B8.D1.8F_.D0.B2_.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.B8
|
|
|
RE: В компилируемых ЯП нет рекурси ? О_о - 2011-07-08 20:53:03.300000
|
|
|
ololo__schoolboy
Сообщений: 118
Оценки: 0
Присоединился: 2011-06-14 12:42:52.573333
|
slipslop, не второе это не чушь, там подразумеваются конструкции типа eval. SICP, Art of Programming это мега сложно и занудно и много математики… ZiMMy, почитал вроде и так это знал.
|
|
|
RE: В компилируемых ЯП нет рекурси ? О_о - 2011-07-08 22:07:38.483333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: ololo__schoolboy не второе это не чушь, там подразумеваются конструкции типа eval. "отложенные вычисления" – это ведь русский перевод фразы lazy-evaluation? Ну дык глянем на haskell, который весь целиком пострен на Pure Functional подходе, замешанном на Lazy Evaluation. Functional – значит, что там даже вместо циклов используется рекурсия. А Lazy Evaluation говорит о том, что всё выполняется в отложенном режиме. Но самое что интересное – это компилируемый язык, к нему прилагается компилятор ghc. Да и вообще, если честно, сегодня говорить о том, что какие-то языковые возможности встречаются только у компилируемых языков, а какие-то только у интерпретируемых – глупо. Сегодня существует огромное количество интерпретируемых в прошлом языков, которые вдруг получили в своё распоряжение компиляторы. А бывает и так, что для компилируемого языка вдруг пишут интерпретатор. Граница между интерпретируемым языком и компилируемым стирается. Язык – это язык, а компилятор или интерпретатор – это средства разработки на этом языке. И если какой-то из языков имеет в своём арсенале интерпретатор, но не имеет компилятора – это ещё ни о чём не говорит. Python – это компилируемый язык, или интерпретируемый? Lisp – это интерпретируемый язык, или компилируемый? Python имеет и интерпретатор, и компилятор, правда компилятор в байткод. А Lisp имеет и интерпретаторы, и компиляторы в байт-код, и компиляторы в native-код. А если компиляторы Lisp в байткод Java-машины, и этот байткод вполне можно гонять через Just-In-Time компилятор.
|
|
|
RE: В компилируемых ЯП нет рекурси ? О_о - 2011-07-09 12:40:43.816666
|
|
|
ololo__schoolboy
Сообщений: 118
Оценки: 0
Присоединился: 2011-06-14 12:42:52.573333
|
quote:
"отложенные вычисления" – это ведь русский перевод фразы lazy-evaluation? Да, но там подразумевается типа передаешь в eval строку и она интерпретируется Например: #!/usr/local/bin/perl
$cmd = "print \"Hello world!!!\n\";";
eval $cmd;
|
|
|
RE: В компилируемых ЯП нет рекурси ? О_о - 2011-07-09 13:10:55.326666
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: ololo__schoolboy quote:
"отложенные вычисления" – это ведь русский перевод фразы lazy-evaluation? Да, но там подразумевается типа передаешь в eval строку и она интерпретируется Например: #!/usr/local/bin/perl
$cmd = "print \"Hello world!!!\n\";";
eval $cmd; Возьмём к примеру C. Напишем компилятор C. Оформим его в виде библиотеки, в которой будет функция compile. Подгрузим эту библиотеку в нашу программу, выполним compile, на строчке "printf(\"hello world\n\");", и вызовем скомпилированный код. Таким образом мы реализуем eval. И скажем компилируемый лисп по такому принципу и работает.
|
|
|
RE: В компилируемых ЯП нет рекурси ? О_о - 2011-07-09 17:20:19.853333
|
|
|
ololo__schoolboy
Сообщений: 118
Оценки: 0
Присоединился: 2011-06-14 12:42:52.573333
|
Не это уже интерпретатор тогда, хотя разделение достаточно условное quote:
Компилируемый язык программирования — язык программирования, в котором исходный код преобразуется компилятором в машинный код, и записывается в файл, с особым заголовком и/или расширением, для последующей идентификации этого файла, как исполняемого, операционной системой. Таким образом, одно из основных отличий компилируемых языков программирования от некомпилируемых, является создание автономного исполняемого файла, содержащего машинный код.
|
|
|
RE: В компилируемых ЯП нет рекурси ? О_о - 2011-07-09 22:47:44.526666
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: ololo__schoolboy Не это уже интерпретатор тогда Нет. Скажем sbcl компилирует всё в native-код. Не просто, как написано в педивикии, раскрывает макросы и разыменовывает переменные – нет, он проводит полный цикл компиляции, от исходного кода до машинного. Это компилируемый язык. Истинно говорю, сегодня разделение языков на компилируемые и интерпретируемые – это пережиток прошлого. Нет языков компилируемых или интерпретируемых.
|
|
|
RE: В компилируемых ЯП нет рекурси ? О_о - 2011-07-10 22:23:27.060000
|
|
|
ololo__schoolboy
Сообщений: 118
Оценки: 0
Присоединился: 2011-06-14 12:42:52.573333
|
Спасибо буду знать
|
|
|
|
|