Какой язык программирования вам нравится и почему
Конечно, там, где важна скорость работы приложения, приходится возвращаться на C++.Зачем?
Я бы еще понял - на чистый С.
HoLy wAr! hOlY WaR! A E!
Меня начинает Фортран интересовать, а еще Scheme.
И как же чистый С может генерить более быстрый код чем С++? Если взять задачу, написанную на чистом С(ну со всякими ручными приведениями типов итд для совместимости) и скомпилить ее С++, то будет медленнее? Смешно.
Да вы, батенька, некрофил
Я бы еще понял - на чистый С.Ну, в общем, это и имелось в виду. Но C в чистом виде всё-таки не очень удобен: то const проскользнёт, то inline...
На этих языках вычислительные программы более удобочитаемые.
ЗЫ: конечно, его современные моификации (J programming language) тоже
Угу, угу. Раскажи это моей бабушке. Вычислительные задачи на любом языке абсолютно неудобочитаемы.
За краткость и читаемость.
---
...Я работаю антинаучным аферистом...
Не знаю, C# для этих целей как-то слабо подходит.
Haskell, поскольку это самый безумный язык.
А если честно, то C++. Еще на меня произвел впечатление NesC под TinyOS, но я на нем не работал.
Фортран шустрый. Факт.
1) Много старого отлаженного кода(blas,lapack,...)
2) Есть высококачественные, высокооптимизирующие компиляторы(просто их дольше развивали )
Если взять задачу, написанную на чистом С(ну со всякими ручными приведениями типов итд для совместимости) и скомпилить ее С++, то будет медленнее? Смешно.
Ну типа один из моих преподов по праку утверждал что да, будет быстрее. Мотивировал это тем, что бОльшие ограничения по синтаксису и семантике позволяют производить бОльшую оптимизацию. Я лично не проверял, но, возможно, он не гнал.
А ваще я имел в виду неиспользование ООП фишек плюсов. ну то есть странно говорить "Я пишу на плюсах", если ты из плюсовых фишек юзаешь только объявление локальных переменных где угодно.
Я жадный.
---
...Я работаю антинаучным аферистом...
Эти ограничения минимальны. В основном вместо B* b = a; (где A* a) приходится писать B* b = (B* a ); И где тут возможны ограничения по скорости? Машинный код тот же. Единственный источник тормозов - rtti, exceptions. Но их можно отключать.
Только не все компиляторы об этом знают или хотят знать.
---
...Я работаю антинаучным аферистом...
Для С возможно больше оптимизаций? Пример в студию!
Зависит не только от языка, но и от писателя.
---
...Я работаю антинаучным аферистом...
Я говорил о том, что преподаватель прав,
только не все компиляторы считают, что они могут как-то ещё
улучшить в некоторых местах.
Си --- это очень плохой язык.
---
...Я работаю антинаучным аферистом...
В смысле большей возможности оптимизации преподаватель прав.Не ты писал? Честно говоря после этого даже говорить с тобой не хочется. Но все же: какие оптимизацие применимы в С и не применимы в С++. И поменьше общих слов.
С++ сам по себе источник тормозов без всяких RTTI. Всякие копирования объектов, виртуальные функции, деструкторы-конструкторы добавляют тормозов.
Обходись без них. С++ очень гибкий язык. Он не заставляет тебя всем этим пользоваться.
>>> Мотивировал это тем, что бОльшие ограничения по синтаксису и семантике
>>> позволяют производить бОльшую оптимизацию. Я лично не проверял, но,
>>> возможно, он не гнал.
Ты будешь утверждать, что приплюснутый Си более свободный, чем простой?
---
...Я работаю антинаучным аферистом...
Я обхожусь без С++. Да и вообще нах он нужен не понимаю - Микрософт его задвигает, а под Unix он никогда не был сильно популярным.
Прочитай тред. Я уже писал об этом. С++ может скомпилировать любую С программу с незначительными изменениями(приведение типа которые не добавляют и не отнимают возможностей оптимизации. Подумай об этом и о своем вопросе.
---
...Я работаю антинаучным аферистом...
Если ТЕБЕ он не нужен, то это не значит что он не нужен другим. Программы на С++ обладают огромными преимуществами по сравнению с С. Большая управляемость, надежность, простота,... Почитай классиков.
То есть, тебе приходится _переводить_.
Как ты думаешь, если у тебя есть куча, допустим, int, которые ты
временами используешь как char (или short то сколько ты их
сможешь удержать в именованной памяти?
Сравни с количеством удерживаемых данных типа char (short).
Напомню, что по умолчанию Си использует везде int.
То, что тебя научили программировать с учётом требований строгой
типизации, вопрос не меняет.
---
...Я работаю антинаучным аферистом...
мне нравится asm_x86. просто прикольно
преимуществами по сравнению с С++.
Большая управляемость, надёжность, простота...
Почитай классиков.
---
...Я работаю антинаучным аферистом...
Чегооооооооооооо? Бррррррееееееееедддддддддддддд! Какая еще в пизду именованная память? Какой еще int по умолчанию? Какие в пизду умолчания вообще? В сад! В ясли! Извини, не удержался.
Жуткий отстой.
Открой для себя asm от PDP-11 или 68K.
---
...Я работаю антинаучным аферистом...
С этим я и не спорил. Полностью согласен. Но мне нравится С++.
ПЛ-1
Или Асм для IBM360
Это что, шутка? Почему же тогда большинство ценных программ под Linux начиная с ядра написано на С? Неужели там засели ретрограды, которые не понимают насколько надежными и простыми станут их творения? Классиками я считаю тех, чей код я смотрю, чтобы понять как сделать то или это. Среди них нет С++сников.
-S Stop after the stage of compilation proper; do not assemble.
The output is an assembler code file for each non-assembler in-
put file specified.
Сравни частоту шины и частоту процессора.
Будешь спорить дальше?
---
...Я работаю антинаучным аферистом...
2) Классики в твоем понимании вообще не нуждаются в языке - Кнут например. Я говорю не об алгоритмах, а о парадигмах, скорее.
Ты это к чему? Может мимо темы промахнулся? Объясни, плз
f{ чего-то-там }
---
...Я работаю антинаучным аферистом...
Из-за сведения к минимуму run-time ошибок.
А вообще, С в любой его вариации. По поводу скорости спорить не буду, поскольку я редко пишу time-critical приложения. Не замерял.
Да ну?
> Поверь мне, я несколько раз собирал Linux с нуля, так что понимаю о чем говорю.
Да уж, неплохие пальцЫ.
Почему же тогда большинство ценных программ под Linux начиная с ядра написано на С? Неужели там засели ретрограды?ага
ну ещё с ядром всё ясно -- быстродействие превыше всего
ну а вцелом ты хорошо сказал %)
2) Это не пальцы. Это факт. Спроси например у ash.
И к чему ты все это сказал?
Как к ним производится доступ? (На общедоступных x86-ых.)
Какие времена доступа к данным в именованной памяти и в ОЗУ?
Каков размер кода с литералами?
---
...Я работаю антинаучным аферистом...
Ядро BeOS полностью написано на С++. И мне кажется что оно ничуть не медленне ядра Linux. А классная была система, но очень плохой маркетинг погубил ее на корню.
Как это связано с разными возможностями оптимизации С и С++?
Кобол тот же.
---
...Я работаю антинаучным аферистом...
Ты будешь утверждать, что она одна и та же для обоих языков?
---
...Я работаю антинаучным аферистом...
Achtung! ФДСные аццы!
А ты попробуй с ключиком -S проверить. Тебя ждет приятная неожиданность
Во всяком случае я понимаю что говорю и не перевожу разговор на личности. А за отцов спасибо.
Не только Линукса.
И не только ЛСД.
\m/ \m/
---
...Я работаю антинаучным аферистом...
посмотрел я у себя ps auxw, из программы на С++ в явном меньшинстве, и все они GUI, системной ни одной не заметил
наверное, у меня неправильный линукс
> Спроси например у ash.
у него тоже пальцЫ?
Молодец. А теперь прочти вопрос на который я отвечал.
2) Причем тут пальцы? Я о факте, а ты о пальцах.
разных сях. Только боюсь, последние сядут в лужу.
Могу поступить более мягко: сравнить выдачу Фортрана с сями.
Смысл?
Можно придумать такой код, когда указание дополнительного
ограничения (например, приведение типа) вызовет более глубокую
оптимизацию.
---
...Я работаю антинаучным аферистом...
"Если всю мочу собрать и использовать умело,
МОЖНО солнце обоссать, вот бы здорово шипело."
Специально подбирал?
Ну давай договоримся, что такое Linux.
Строго говоря, это ядро.
В дистрибутиве ядра со своей тачке я нашёл только один C++ файл: scripts/kconfig/qconf.cc
Похоже, это какой-то гуёвый заменитель make config.
Комментарии излишни.
Иногда под словом Linux понимают дистрибутив, тогда следует договориться о том, какой именно возьмём и почему,
и как бы побыстрее подсчитать, сколько там каких программ.
> Причем тут пальцы?
А не из вашей тусовки случайно? Стиль у его откровений в соседнем разделе похожий.
2) Не передергивай. Когда ты говорил что у тебя в Linux по команде ps aux выдается больше программ на С ты что имел в виду? Ядро? Дистрибутив? Продолжай в таком духе, и я прекращу отвечать на твои посты, как не несущие полезной информации.
3) Такого не знаю. А ты видимо из тусовки КОНТРЫ.
ну если информация о том, что у многих других людей среди используемых программ написанные на C++ в меньшинстве,
бесполезна, то можешь не отвечать
> Когда ты говорил что у тебя в Linux по команде ps aux выдается больше программ на С ты что имел в виду?
некоторая оценка по доле программ на С и на C++ среди используемых мной
причём ничего нетипичного среди них нет
а вот мне интересно, что за Linux ты собирал много раз с нуля?
я реально не понимаю, откуда там взялось столько программ на C++, зачем они?
Ну ты сам этого захотел. Прощай. В игнор навеки.
Тогда Linux нельзя считать полноценной операционной системой и нужно на него забить, и предать забвению.
Охотно верю что он целиком написан на языке которому за 30 лет, а основным идеям столько же сколько первому програмимсту Евклиду.
ЗЫ: оставить его работать на маршрутизаторах и прочих холодильниках
ставь игнор сразу, устал я уже
фраги надо зарабатывать, а не выпрашивать
Я вот на Delphi пишу...
Гыгы, винда тоже кал тогда, ибо тож на чистом С написана.
Ты сам сказал Не прибавить не убавить
А вообще, откуда сведения: "Гыгы, винда тоже кал тогда, ибо тож на чистом С написана."?
Только не надо говорить, что неоднократно собирал с нуля, ок?
Функция для умножения 8-разрядных значений.
На Си:
f(a, b) { return a*b; }
На приплюснутом Си этот же код должен быть обязательно с
указанием типов:
char f(char a, char b) { return a*b; }
Умножение 8 на 8 и умножение 32 на 32 занимают разное время.
В особенности, если ты возьмёшь процессор без команды умножения.
Хотя в первом случае компилятор из контекста (не приведён)
мог бы догадаться, что ты используешь только младшие 8 разрядов.
---
...Я работаю антинаучным аферистом...
Поправьте меня, если я неправ.
не из моей тусовки.
---
...Я работаю антинаучным аферистом...
Я тоже Перл люблю, за его регулярные выражения и за то что прога на перле гораздо короче аналогичной на Си.
Странный вывод.
Тем более, что Windows - это уж точно не ядро, а дистрибутив.
Да и в ядре, я слышал (сам не видел используются многие возможности C++, в частности в драйверах это якобы легко.
.file "qw.c"
.text
.globl f
.type f, @function
f:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp %eax
imull 12(%ebp %eax
popl %ebp
ret
.size f, .-f
.section .note.GNU-stack,"",@progbits
.ident "GCC: (GNU) 3.4.1"
Вполне видно что это инт. Так и в С++ напиши инт. Это будут две одинаковые программы. Где тут разные возможности оптимизации?
2) Не мог и не должен догадываться. Читай стандарты.
А стили у вас похожи: не слушаете собеседника, выдираете фразы из контекста, отвечаете на другие вопросы,... etc. Не мудрено так ошибиться.
2) у С есть две фишки: нестрогая типизация, быстрая компиляция относительно С++ (кое-где это бывает полезно, возможно имеет смысл писать кернел на С)
А чем лучше нестрогая типизация? И главное: а разве срогую типизацию в С++ нельзя обойти?
в этом отношении Eiffel лучше
я сказал, что кое-где полезно -- где код будет засоряться кастами
Иначе он не оптимизирующий, а так.
Погулять вышел.
В частности, "идеальный" оптимизирующий компилятор должен
догадаться, что используются только 8 младших разрядов из
скольки есть.
---
...Я работаю антинаучным аферистом...
Ну кому как. Мне кажется что с кастами понятнее. Да и ошибок легче избежать. Это дело вкуса.
до которых неспособен догадаться разработчик компилятора.
Ну и как, расскажи, ты обходишь строгую типизацию в Си++?
Приведи пример использования нестрогой.
---
...Я работаю антинаучным аферистом...
Во время компиляции файла a.c где расположено определение f он должен понять что в файле b.c где эта функция используется он должен понять такую ахинею? Тогда этот компилятор - маг и волшебник. Читай стандарты. Да и вообще читай. Говорят, помогает.
думаю в случае с кернелом линукса основная причина, это то, что С компилица значительно быстрее
а что _ты_ называешь операционной системой?
---
...Я работаю антинаучным аферистом...
Это да. Есть такое дело. Но в случае с Linux дело скорее всего было в том что Линус просто не рюхал С++ когда начал его делать
говно язык! может там интерфейс и бины всякие с помощью визардов ваять и нормально, но вот на универсальный язык он не тянет, что странно учитывая тот факт, что САН свою платформу снарядила только джавой.
и почему мне на джава прогать приходиться
первая сцылка в гоогле по запросу "linux linus c++"
http://www.linuxgazette.com/issue32/rubini.html
Many people ask why the kernel is written in C instead of C++. What is your point against using C++ in the kernel? What is the language you like best, excluding C?
Linus: C++ would have allowed us to use certain compiler features that I would have liked, and it was in fact used for a very short timeperiod just before releasing Linux-1.0. It turned out to not be very useful, and I don't think we'll ever end up trying that again, for a few reasons.
One reason is that C++ simply is a lot more complicated, and the compiler often does things behind the back of the programmer that aren't at all obvious when looking at the code locally. Yes, you can avoid features like virtual classes and avoid these things, but the point is that C++ simply allows a lot that C doesn't allow, and that can make finding the problems later harder.
Another reason was related to the above, namely compiler speed and stability. Because C++ is a more complex language, it also has a propensity for a lot more compiler bugs and compiles are usually slower. This can be considered a compiler implementation issue, but the basic complexity of C++ certainly is something that can be objectively considered to be harmful for kernel development.
правильный компилятор? И который это компилятор?
Неважно, где расположено определение функции, коль скоро оно
используется только в пределах одинакового (или даже одного)
контекста, где имеют значение только младшие разряды.
_Оптимизирующий_ компилятор должен понять это.
То, что язык допускает модульность только на уровне файлов ---
его личные трудности и головная боль разработчиков и писателей
_оптимизирующих_ компиляторов.
---
...Я работаю антинаучным аферистом...
не пойму, что так все джависты его восхваляют
И что? А ты ксати знаешь сколько времени прошло от начала разработки до выхода 1.0? В начале разработки Linus мог и не рюхать в С++. Да, а ты заметил смайлик в моем сообщении?
все современные С++ компиляторы уже давно оптимизируют на уровне всей сборки
То, что язык допускает модульность только на уровне файлов ---
его личные трудности и головная боль разработчиков и писателей
Компиляторы пишутся по стандарту языка, а не так как этого хочется великому КОНТРЕ. То что ты хочешь - невозможно. Подумай об этом и не трать время умных людей.
а также то, что "фдсные аццы" не прочь попиздеть всякую хуйню
а читать ты не умеешь
обычно это некая общая часть, которая включает несколько больше чем Windows или Linux или даже Mac OS, то есть это то что люди обычно называют ОС + аппаратная инициализация + какая-нибудь система управления задачами + файловая система. То над чем приходится задумываться, отвлекаясь от своей задачи (решение СЛАУ, написание текста, рисование, и т. д. ...). То что нормального человека ставит в тупик, и вселяет первобытный страх.
Это как? А если определение функции лежит в библиотеке? Что тогда сделает компилятор? Дизассемблирует библиотеку и будет переоптимизировать нужные функции? Так авторов тогда посадят
целом? Может, ты ещё и ссылку приведёшь?
Список, там, машинных команд, которые допустимо использовать для
компиляции?
---
...Я работаю антинаучным аферистом...
В отличие от тебя я не пизжу, а говорю дело. А за отцов спасибо.
А ты знаешь что такое единица компиляции? А ты понимаешь что оптимизация за пределами этой единицы принципиально невозможна? Да хотя бы по юридическим причинам?(смотри выше)
Про всякие, там, RTMX, VRTX и ещё тучу операционных систем
я уже молчу.
---
...Я работаю антинаучным аферистом...
личные трудности. Такой компилятор не имеет права называться
оптимизирующим. Ему не просто так скармливают список файлов.
Юридические причины к делу не имеют отношения:
всё в пределах кода, написанного одним человеком.
---
...Я работаю антинаучным аферистом...
штука в том, что сначала каждый срр компилица в объектнык, только не в найтив инструкциях, а на каком-то промежуточном языке
а преобразование (в том числе и оптимизация) из пром. яз. в найтив яз. (x86 и проч) происходит во время линковки
короче деталей я не помню/не знаю, но вроде интеловские и майкрософтские компиляторы с++ так работают
а вообще, я считаю, что будущее - за ООП!
Если ты не знал, компилеру не скармливают список файлов. Один файл за один раз. Это линкуются много файлов. Ну о чем после этого с тобой можно говорить? Да посмотри output в вижаке или makefile како-нибудь изучи на досуге что ли.
ЗЫЖ про эти оси я не слышал, посмотрю.
там написано не только почему c++ в ядре нет, но и почему его там не планируется
> А за отцов спасибо
применительно к таким как ты, это слово пишется по-другому
научись его уже писать правильно
> В отличие от тебя я не пизжу,
ссылка?
> а говорю дело.
твои домыслы до "дела" недотягивают, извиняй
Честно говоря сомневаюсь. Можно ссылку?
Заметь, что я в основном говорю по теме. А ты флудишь. Прощай. В игнор. Надо побыстрее отсеять таких как ты, будет намного легче.
ггг, ну прощай, атец-пиздобол
(мне C# определенно больше джавы нравиться)
Мышление человека существенно опирается на действие, выражаемое
глаголами. Наиболее древние слова в современном языке ---
глаголы повелительного наклонения.
А ООП проталкивает подход, переворачивающий всё с ног на голову,
ставя дополнение выше действия, над ним производимого.
Так как может быть за ним будущее, если оно:
а) не отвечает способу мышления человека;
б) существенно ограничивает средства выражения только одним
активным объектом.
в) не достигло такой выразительности средств, каких достигли
функциональные языки;
г) не предоставляет таких средств оптимизации, как
функциональные языки;
д) при всём этом, не только исчерпало возможности своего
развития, но и не сообщает никаких признаков наличия таковых.
---
...Я работаю антинаучным аферистом...
да ладно. хорош гнать на ООП. пользоваться не умеешь -- не пользуйся
[/flood]
SYNOPSIS
gcc [ option | filename ]...
g++ [ option | filename ]...
А Makefile --- это личные трудности твоего любимого компилятора,
_не_допускающего_ оптимизации программы в целом.
---
...Я работаю антинаучным аферистом...
Может все-таки лучше использовать шаблоны, чем так извращаться...
Я ее три раза прочел от корки до корки. И еще кучу литературы по С++, посерьезнее. Без шуток.
этот тред для стёба, если я всё правильно понял
думаю в MSDN найти не сложно
была кажется статья в MSDN Magazine
У меня тоже инета нету. Завтра посмотрю, мне даже интересно стало.
Ни в каком виде.
---
...Я работаю антинаучным аферистом...
ну и ладно, я джава все равно говно!
"Си" проще, чем фя, а люди ленивы - и этим все сказано.
Кобол тоже --- до сих пор жив.
---
...Я работаю антинаучным аферистом...
это ж надо с кобола переписывать, да Схх какой-нибудь учить
Мышление человека существенно опирается на действие, выражаемое
глаголами. Наиболее древние слова в современном языке ---
глаголы повелительного наклонения.
......
а) не отвечает способу мышления человека;
ты о прогрессе слышал?
древние языки со временем отмирают, им на смену приходят новые - более продвинутые
мне кажется, что способы мышления древнего и современного человека о-о-очень сильно различаются......
б) существенно ограничивает средства выражения только одним
активным объектом.
в) не достигло такой выразительности средств, каких достигли
функциональные языки;
г) не предоставляет таких средств оптимизации, как
функциональные языки;
д) при всём этом, не только исчерпало возможности своего
развития, но и не сообщает никаких признаков наличия таковых.
обоснования? в частности, насчет д). хочешь сказать, что функциональные языки развиваются быстрее, чем ООП?
> ставя дополнение выше действия, над ним производимого.
В русском, так и в английском языках - сначала идет подлежащие, потом сказуемое, а потом дополнение.
Текущая запись выражений в ООП придерживается такого же стиля. Что не так?
> а) не отвечает способу мышления человека;
см. выше
> b) существенно ограничивает средства выражения только одним
активным объектом.
пиши так: (file1+file2).Copy(targetDir) и будет тебе счастье.
в МL неплохо уживаются концепциии ООП и функциональных языков
вот если человек хочет изучить процедуры ему предлагают Pascal
если обьекты то Smalltalk
а вот если фя, то ему что изучать? (что бы в дальнейшем он писал хороший понятный расширяемый ф-код, быть может с кем-нибудь в команде и ему бы это нравилось, а другие фя может не такие строгие он бы легко воспринимал, обращая внимание на их слабые места)
c-lisp? haskel или scheme?
Глаголы "дай" или "беги" умерли?
Да.
Несмотря на то, что ООЯ появилось позднее ФЯ,
редкий ООЯ достигает хотя бы того уровня ОО, который достигается
в таком древнем ФЯ (условно как Лисп.
А если брать вторую волну, то в ФЯ и в ООЯ она появилась почти
одновременно.
Однако, с тех пор ФЯ по скорости достигли, а порой даже
превзошли ИЯ (по выразительности они превосходили ИЯ с
рождения чего отнюдь не скажешь про ООЯ.
---
...Я работаю антинаучным аферистом...
---
...Я работаю антинаучным аферистом...
---
...Я работаю антинаучным аферистом...
И что?
---
...Я работаю антинаучным аферистом...
Как из фя сделать:
connectToDB;
Data data = GetData;
CloseDB;
?
и вообще, что за бред про глаголы и прочее
мало ли кто чего придумывает, еще про логические языки вспомнить осталось
писать программы в повелительном наклонение - это зло, потому что в этом случае компьютер выступает "болваном".
Кстати он и есть болван.
превзошли ИЯ
Как быть, например, с runtime-полиморфизмом?
А ты хорошо владеешь каким-нибудь Прологом?
---
...Я работаю антинаучным аферистом...
Считать всех остальных дураками - это признак большого ума?
---
...Я работаю антинаучным аферистом...
2. Когда нужен, под рукой есть компилятор.
---
...Я работаю антинаучным аферистом...
быстрый логический вычислитель
Это ты сам выдумал. Здесь много людей чье мнение мне интересно, и которых я уважаю. Но ты не входишь в их число. Я даже не говорю что ты дурак. Это скорее всего не так. Просто с тобой бесполезно говорить о чем-то.
хотя думаю будущее за декларативными языками, а логические к ним ближе всего (просто Пролог не самый удачный пример)
пишешь что должно быть сделано, у оптимизатора полная свобода, пусть себе оптимизирует
А какие есть основания приписывать компьютеру ум?
---
...Я работаю антинаучным аферистом...
Только более сложные и с наворотами.
---
"...Только маленький. И примитивный."
("Его звали Роберт.")
Да, нужен. Как минимум нужен, если программа разрабатывается не одним разработчиком (не одной командой).
> Когда нужен, под рукой есть компилятор.
99% людей не умеет пользоваться компилятором, но при этом хочет уметь расширять программы, хотя бы в виде добавления готовых модулей.
И у компилятора тоже есть полная свобода изменять и переставлять
действия по своему усмотрению.
---
...Я работаю антинаучным аферистом...
на сколько я помню, ум это как раз умение быстро проводить логические вычисления.
У ФЯ модульность получше будет, чем у модульных ИЯ.
Расширяй --- сколько влезет.
А IPC, кстати,--- рулит.
Да и раздельную компиляцию можно сделать,
если поступиться оптимизацией.
Ввести арифметическое или близкое к нему выражение,
кстати, тоже не особо трудно.
---
...Я работаю антинаучным аферистом...
Как мне кажется, ум - это способность сделать вывод на основе неполных данных.
Так языки все-таки лучше декларативные? или лучше те, в которых пишутся повелительные глаголы?
это уже скорее интуиция, а не ум.
Офигенно быстро интегрирует.
Даже непонятно, и как это он только успевает?
---
...Я работаю антинаучным аферистом...
> Так языки все-таки лучше декларативные?
> или лучше те, в которых пишутся повелительные глаголы?
по-твоему декларировать действия невозможно?
кстати, а что за ИЯ?
ты до сих пор задаёшь такие вопросы?
через врапперы, разумеется, чтобы преобразовать одну систему типов в другую
пример из пингалки сети на Ocaml:
ML-часть: external ping : string -> int * int * int = "ping" ;;
C-часть: CAMLprim value ping (value str);
в сишном коде преобразуем типы через API и вызываем, что хотим
> Как из фя сделать ...?
последовательное выполнение тоже можно записывать
в Ocaml это фича языка, в Haskell есть IO monad
В каком контексте, высказана данная фраза?
> Да и раздельную компиляцию можно сделать,
если поступиться оптимизацией
Самому делать?
> Ввести арифметическое или близкое к нему выражение,
кстати, тоже не особо трудно.
Это совсем не главное.
в том же коде linux-а более сложных выражений, чем a/b, a+b единицы.
некоторые относят функциональные языки к императивным,
а некоторые --- к декларативным.
Последнее, вроде, более верно: порядок действий может быть
существенно изменён, да и выражение может быть упрощено.
Собственно, и описывается-то, в общем случае, итог действия,
а не само действие.
---
...Я работаю...
какое это отношение имеет к логическим вычислениям?
Зачем в каждом действии подчеркивать, что это команда для исполнителя? да, и вообще подчеркивать само наличие исполнителя?
>> Да и раздельную компиляцию можно сделать,
>> если поступиться оптимизацией
> Самому делать?
"Всё уже украдено до нас."
>> Ввести арифметическое или близкое к нему выражение,
>> кстати, тоже не особо трудно.
> Это совсем не главное.
А что?
---
...Я работаю антинаучным аферистом...
> ты до сих пор задаёшь такие вопросы?
мне бы хотелось увидеть полный код, который выполняет данное действие.
который можно взять и запустить, без дополнительного написания кода.
Прямоугольничками али по Симпсону?
Или вообще --- сплайны строит?
---
...Я работаю антинаучным аферистом...
---
...Я работаю антинаучным аферистом...
Так не бывает.
34
> А что?
Важнее умение описывать сами данные, а также взаимосвязи между данными.
а также в дальнейшем уметь применять эти описания
вопрос у меня был один
и мне действительно интересно, почему ты до сих пор не разобрался
> мне бы хотелось увидеть полный код, который выполняет данное действие.
> который можно взять и запустить, без дополнительного написания кода.
прочитай мануал, чтоли
когда мне это понадобилось, я именно так и сделал
после просветления, возможно, покажу интересующий тебя кусок кода,
если он будет ещё актуальным
---
...Я работаю антинаучным аферистом...
"Скопируй файлы в директорию"
чем
"Файлы копируются в директорию"
Ps
замечу, что во втором случае остается больший просто для оптимизации:
так файлы могут быть скопированы и с помощью человека, так и с помощью самих файлов, если в них встроен процессор.
Потому что мне не хватило терпения и времени.
> прочитай мануал, чтоли
не имею возможностей.
Поэтому мне и хочется, воспользоваться твоей помощью, как эксперта, и узнать сколько требуется написать строчек кода для вызова функции WNetEnumResources
императивные языки
ps
большинство людей, например, также не интересует, каким образом ты умеешь решать поставленные задачи.
есть субъекты, а есть объекты.
То бишь, подлежащие и дополнения.
Однако, смысловая разница.
Опять же, вовзратный глагол в изъявительном наклонении?
Не сложно ли?
Кроме того, "копируются" исходно означает "копируют себя,"
указывая действующее и косное начала.
"Сделай" не подразумевает "сиди и вкалывай неотрываясь."
Ср. "оплата сдельная."
---
...Я работаю антинаучным аферистом...
Мало того, ещё никто и не догадывается, что же он такое внутри
делает, что у него так замечательно получается.
---
...Я работаю антинаучным аферистом...
> есть субъекты, а есть объекты.
> То бишь, подлежащие и дополнения.
Дык, можешь тогда надо начинать с обычного языка, и сделать так, чтобы в нем тоже не было подлежащий и дополнений, а все объекты были равноправны?
> Опять же, вовзратный глагол в изъявительном наклонении?
> Не сложно ли?
Это уже издержки русского языка, так как в русском языке по другому не получается сформировать фразу без указания явного исполнителя.
> Кроме того, "копируются" исходно означает "копируют себя,"
указывая действующее и косное начала.
Это побочный эффект, основный смысл фразы в том, что файлы неким высшим образом перемещаются в директорию, оставляя тем самым простор для оптимизации.
> "Сделай" не подразумевает "сиди и вкалывай неотрываясь."
> Ср. "оплата сдельная."
Но подразумевает явное участие исполнителя в указанном действии.
---
...Я работаю антинаучным аферистом...
умы между собой обычно сравнивают на основе кол-ва задач, которые эти умы умеют решать.
кулонометр сложно назвать выдающимся, так как он умеет решать только одну задачу.
> подлежащий и дополнений, а все объекты были равноправны?
Зачем?
В нём и так есть подъязык приказов, где есть чётко выделенное
действие, приводящее к (в общем случае --- похожему) итогу,
а всё остальное --- косное и вынесено в дополнения.
>> Опять же, вовзратный глагол в изъявительном наклонении?
>> Не сложно ли?
> Это уже издержки русского языка, так как в русском языке по другому не получается
> сформировать фразу без указания явного исполнителя.
Ну, попробуй сделать в английском.
Или в немецком.
>> "Сделай" не подразумевает "сиди и вкалывай неотрываясь."
>> Ср. "оплата сдельная."
> Но подразумевает явное участие исполнителя в указанном действии.
Всё его участие может быть сведено к передаче приказания далее
по цепочке.
---
...Я работаю антинаучным аферистом...
Можно соединить кулонометр со сливным бачком:
один быстренько заряд интегрирует,
а другой за уровнем воды следит.
---
...Я работаю антинаучным аферистом...
дальше по расценкам профсоюза
по цепочке.
Вот видишь, ты уже себя ограничил. Ты думаешь, что в программах бывают только приказы.
А ведь исходное выражение могло быть частью такой программы:
Файлы A,B копируются в директорию C.
Исполнителями являются Вася и Петя.
Действие должно быть выполнено к 5 часам.
Проследи за правильностью выполнения.
или такой:
Файлы A,B копируются в директорию C.
Файлы A и B располагаются на хосте D, а папка C на хосте E.
Рассчитай какое кол-во трафика передастся по сети в этом случае.
Я, конечно, понимаю, что данный "выдающийся" ум стал в целых два раза умнее, но мне все равно почему-то кажется, что слово "выдающийся" надо до сих пор брать в кавычки.
во втором --- рассчитать.
И там, и там приказ описан глаголом в повелительном наклонении.
Просто над тобой довлеет то самое проклятье Джона Бекуса.
---
...Я работаю антинаучным аферистом...
из твоих слов же следует, что вся программа должна записываться в повелительном наклонении.
что и не снилось нашим мудрецам."
Приборов на свете много разных.
Ножницы, например.
---
...Я работаю антинаучным аферистом...
Рассчитать общий размер данных, передаваемых по сети при
пересылке файла такого-то с узла такого-то и файла такого-то с
узла такого-то на узел такой-то.
(define объём-данных
(+ (размер-при-передаче (файл "узел" "имя") "узел")
(размер-при-передаче (файл "узел" "имя") "узел"
---
...Я работаю антинаучным аферистом...
например, есть такой прибор - шофер называется.
ну, и что из этого?
ps
кстати, ножницы тоже умеют решать только одну задачу.
> (define объём-данных
Это определение не подходит для второй задачи.
исходное определение можно было использовать в обоих задачах.
ps
и как же будет определена функция "размер-при-передаче"?
> что выполняются какие-то действия.
В этом и суть декларативных языков.
> Это определение не подходит для второй задачи.
> исходное определение можно было использовать в обоих задачах.
И почему оно не подходит?
> и как же будет определена функция "размер-при-передаче"?
Как угодно.
Это тонкости, от которых можно отвлечься.
---
...Я работаю антинаучным аферистом...
Удобен и понятен он.
Ну и пишу на нём, конечно,
Я с незапамятных времён.
и вообще меня уже достало програмить
Гон. Суть декларативных языков не в том,чтобы терять информацию, и не уметь описывать ситуацию, а в том, чтобы предоставлять наиболее полную информацию о задаче (т.е. специфицировать то что надо, и не специфицировать, то что не надо).
Хочешь сказать, что раз нет глаголов - то это сразу стало декларативное представление, а раз глаголы - значит не декларативное?
Замечу, что вот следующие является декларативным определением:
Файлы A и Б копируются в папку C.
Исполнителями являются Вася и Петя.
Действие начинается в 3 и должно быть выполнено к 5.
Да, и вот такое - это тоже чисто декларативное определение:
Коллекция сортируется по ходу работы.
для сортировки используется QuickSort.
хотя здесь и явно говориться, как надо приступить к выполнению задачи.
> Это тонкости, от которых можно отвлечься.
Опять гон. В этом как раз и разница между ИЯ и ДЯ.
В ИЯ эту функцию надо писать самому, в ДЯ - исполнитель может сам эту функцию восстановить на основе более раннего декларативного определения.
1) Линус написАл некое свое мнение. Типа, его проект - он и решает. Более того, я бы на его месте принял бы такое же решение. Хотя объявлений переменных в любом месте Сям явно не хватает. Хотя самое правильное, имхо, - подпатчить компайлер С, конечно =) Добавить некоторые возможности.
2) Пример контры очень забавен тем, что а) конкретно щаз любые(!) действия над 32битными числами жрут меньше места и времени чем над 8-битными. В современных десктопах. А абсолютная переносимость программы - это очень вредный миф. Мою программу написанную под С51 с конкретной схемой окружения переносить даже на другое окружение бессмысленно, не говоря даже о другом проце. С другой стороны в тех же жаве и шарпе четко заявлено, что инт - это 32 бита, при этом переносимость теоретически абсолютная.
3) ООП - это парадигма, а не свойство языка. Я могу написАть прекраснейшую ООП программу на чистом С. Честно. Даже с полиморфизмом. Читайте Code Complete, там чувак очень правильную историю про прогу на VB задвинул, как раз про это. Парадигма - она в голове, а не в синтаксисе
4) Функциональные языки не вымрут никогда. Потому что всегда есть задачи на переднем крае возможностей конкретной вычислительной техники, а в таких задачах
а) программер должен быть уверен, что компилятор понимает его именно так, как нужно. Когда я писАл прогу под С51 с 30% запаса по скорости (приблизительно) я читал листинги постоянно. Половину времени где-то.
б) вычислительная техника в большинстве своем думает _функционально_. Ассемблер х86 - функциональный. Поэтому эффективная программа должна легко переводится с языка программиста на язык компьютера. Между парадигмами эффективно переводить, как правило, невозможно.
5) "Файлы копируются в директорию" имхо лучше чем "Скопируй файлы в директорию", тем что в первом случае технология копирования заныкана внутри "Файлов", а во втором - в слове "Скопируй". Ну то есть это я так понимаю эти предложения имея в виду ООП в первом случае и Forth - во втором. На возражение, что слово "Скопируй" может вызывать функцию "копировать себя" у "файлов" а вовсе не имплементить технологию копирования внутри себя, я отвечу: а вот это типичный пример использования парадигмы ООП. А язык тут как раз не важен.
Так вот, а инкапсуляция технологии копирования файлов, копирования частей картинки, копирования интов в конце концов, в одном и том же (оверлоаднутом) слове "Копируй" кажется мне лично глубоко порочной. Особенно по сравнению с
interface IDataSource
{
void CopyTo(IDataTarget destination);
}
который, ИМХО, является Абсолютом копирования чего-нибудь куда-нибудь с минимальными накладными расходами.
6) Конкретно в форте я заметил только одну песдатейшую фишку - типа язык описывает собственный синтаксис и метод компиляции. А сама парадигма ФЯ меня совершенно не прикалывает (см. п. 5).
7) Декларативные языки - это, конечно, добро. Но у них своя сфера эффективного примения, у процедрных/ООП - своя, поэтому спор о том, что лучше, я считаю в высшей степени бессмысленным. Знать лучше обе парадигмы, конечно.
предлагал. получен категорический отказ
C#; он для меня как C++, только доведённый до ума.имхо, С# это другой язык, чем C++. Сборка мусора изменяется сам способ программирования.
P.S. через смарт-поитеры сборку мусора можно организовать и на C++, но, имхо, это извращение, легче моменять сам язык
А ты блок try-catch не пробовал использовать?
Риспект.
Многие считают что VB говно, но лингвой то пользуются...
Лингва, если яя не ошибаюсь, написана на пласпласе.
Честно говоря хз - просто они летом VB-программистов набирали...
в том же С++ больше ошибок можно отлавливать при компиляции
При падении Лингва жалуется на LingvoProtection.cpp. Прогрмаммеров они обычно хотят сишных. Хотя, мб, для разных целей разные прогеры. Аббии ведь не только лингвой занимается. Да и для лингвы, я думаю, нужны сопутствующие программы: например, для работы с корпусами. Или для созданиия сайта. Или еще для чего-нить.
в том же С++ больше ошибок можно отлавливать при компиляциине верю
Поверь мне, я несколько раз собирал Linux с нуля,Поэтому вот твои заявления о простоте кажутся несколько, хм, необоснованными, что ли...
Это не аргумент в holy war.
Поверь мне, я несколько раз собирал Linux с нуляПоясни плс, что это значит. Ты имеешь в виду, что делал свой дистрибутив?
Ага. И поэтому я очень хорошо представляю сколько у меня программ на С++ а сколько на С.
ладно, уговорил
а также то, что "фдсные аццы" не прочь попиздеть всякую хуйнюВообще мат в разделе допустим, но безличный. А это уже на грани оскорбления.
У тебя. Теперь проанализируй другие дистрибутивы. Только сравнивай дефолтные инсталляции, а не максимальные. Если же сравнивать минимальные инсталлации, то боюсь программ на C++ не будет вообще.
Заранее предупреждаю, что я не хочу сказать, что программы на C++ более бесполезные, чем на C. Я просто опровергаю твоё заявление, что в Linux преимущественно всё на C++.
ггг
а говоришь
Хочу отметить несколько мыслей.
1. Я спрашивал только то, что спрашивал: «Какой язык…?». Флейм не заказывал. Большое спасибо тем, кто ответил на вопрос.
И ещё (извините, трудно сдержаться). В этом форуме есть такая функциональность, чтобы можно было посты КОНТРЫ не видеть? Ну, как аниме на z80. Необоснованные пальцы и неконструктивная околонаучная лабуда потихоньку напрягают, знаете ли. Можно подумать, здесь на форуме нет ни одного знакомого с PDP-11/Intel 8XYZ/Z80+ и т. д., а только одни обезьяны, наскоро оторвавшие свои хвосты и прочитавшие BASIC for Dummies по диагонали.
2. Asm. Согласен, приятная штука. Такое ощущение, как будто пазл собираешь. Или, как матёрый музыкант, подбираешь ноты.
3. Java. Прикольно, конечно, написать прогу в Studio One, посмотреть на эмуляторе и залить в своего маленького мобильного друга. (Это я про переносимость.) А так… Как я понимаю, C# создавался в т. ч. с учётом джавы, в т. ч. с учётом его недостатков. В книге Thinking In C# время от времени встречаются упоминания типа «ну это почти как в Java».
4. C/C++/C#. Программирование в терминах функций считаю более чем естественным, и не говорите мне, что я ограниченный человек. Почему считаю, что C++ ещё лучше, чем C? Потому, что когда у вас океан функций и структур с ещё большим океаном их взаимозависимостей, не нужно быть специалистом по теории хаоса и порядка, чтобы понять, что без какого-то укрупнения в этом океане просто утонешь. Так что для кого-то ООП – это мода, а для кого-то – неизбежность (чтобы не сказать безысходность и опять же, естественный способ мыслить. Человек мыслит объектами. (Оффтоп: кстати, в японском языке глагол всегда на последнем месте. ) По моему, C++ - это выдающийся язык, на котором в процессе его развития было обкатано много полезных общепрограммистских приёмов, связаных с классами, шаблонами, типами (RTTI исключениями и т. д. Но посколько эти нововведения должны были подчиняться требованиями совместимости, их реализация остаётся несколько корявой и по сей день. C#, в свою очередь, был свободен от всего этого, мог взять лучшее, что есть в C++, джаве, бейсике и стать ещё более прозрачным средством программирования. И теперь можно ещё больше думать над задачей, и ещё меньше – над деталями её реализации. За это я его и люблю.
В этом форуме есть такая функциональность, чтобы можно было посты КОНТРЫ не видеть?
есть
Но посколько эти нововведения должны были подчиняться требованиями совместимости, их реализация остаётся несколько корявой и по сей день.
я путаю, или в С# некоторые из этих нововведений и по сей день лишь обещают?
Скорее путаешь, потому что вспоминается в C# только отсутствие множественного наследования, но его и не обещают.
"Любые" --- это на одной выделенной платформе.
Про переносимость на более высокую разрядность, кстати, я писал
в другом месте. Самое удивительное: через неделю после моего
высказывания сомнений в переносимости кода, народ обнаружил
провал на 64-разрядной машине.
Учение Чарльза Мура о переносимости очень непопулярно,
поэтому давай его обсуждать не будем.
Есть факт: стремление всех и вся ("почти") писать наиболее переносимо.
Высокоуровневые языки ценны именно тем, что при программировании
не надо задумываться о том, как это работает на самом деле.
И переносимость их обеспечивается созданием такого окружения,
когда нет нужды в знании ширины машинного слова.
Что ты понимаешь под словами "ассемблер х86 --- функциональный?"
Упрятывание функциональности "копировать" внутрь объекта,
со всеми его единственными и неповторимыми свойствами,
выделяющими его среди всех прочих объектов, приводит к тому,
что ты теряешь кучу полезных соотношений, присущих общему
действию "копирования."
Просто за счёт приписывания этому действию неповторимости.
По поводу "6," кстати, открой для себя мир лиспа.
---
...Я работаю антинаучным аферистом...
И переносимость их обеспечивается созданием такого окружения,
когда нет нужды в знании ширины машинного слова.
Ну типа в принципе да, но есть два пути - либо ты пишешь так, чтобы 11-битность инта не приводила к страшным последствиям, либо ты пишешь в системе, в которой инт гарантированно 32 бита.
>Что ты понимаешь под словами "ассемблер х86 --- функциональный?"
Упс. Имелось в виду, конечно же, слово "процедурный".
>Просто за счёт приписывания этому действию неповторимости.
Интерфейсом IDataSource я приписываю этому действию абсолютную повторимость и унифицированность. Понятие интерфейса входит в ООП с самого начала (только тогда оно называлось Множественным Наследованием).
>По поводу "6," кстати, открой для себя мир лиспа.
Не лежит у меня душа в данный момент к узкоспециализированным языкам =)
> Бери книжку Страустрапа и читай внимательно
там такое написано?
Надо же! Респект, Кайафа, не ожидал я в форуме встретить человека? знающего про NesC и TinyOS.
Я с ними, родимыми, работаю профессионально.
Честно сказать, не слишком сильное впечатление несси на меня производит, чем дальше, тем больше.
Много гемора и общее впечатление неуклюжести языка (это субъективно).
Ещё не нравится нагромождение новых языковых конструкций, за которыми на самом-то деле порой скрываются простенькие сишные вещи (это объективно).
Но самое, мля, голимое в несси- это его е..учий компилятор, отвратительно написанный на С. По ходу, специально так, чтобы хрен кто разобрался.
После того, как я повозился с исходниками нессишного компилера, моё уважение к универу Беркли сильно пошатнулось. Я бы писал подобный компилер в Gentle'e.
В то же время нельзя не признать, что своей нише - созданию глубоко параллельных прог для embedded и распределённых систем - он адекватен более, чем кто-либо ишшо.
Если не секрет, Кайафа, а откуда ты про эти вещи знаешь?
Потому что был он --- шестнадцатиразрядным."
Ещё лучше --- писать в системе, где целое число является именно
целым числом. А не "по модулю эн."
> Интерфейсом IDataSource я приписываю этому действию абсолютную повторимость
Таким образом, тебе приходится отдельно описывать действие,
прикладывая дополнительные усилия.
И это при том, что подобное описание всегда существует
и (в функциональной парадигме) его не требуется, вообще говоря,
прописывать отдельно.
См., например, выдачу:
~ # sml
Standard ML of New Jersey, Version 110.0.7, September 28, 2000 [CM; autoload enabled]
- fun k a b = a;
val k = fn : 'a -> 'b -> 'a
Ещё вопрос по ООП:
как предполагается описание срествами ООП действий,
дающих в итоге качественно отличный объект?
Например, "внешнее произведение:" ab^+.
Кстати, чуть вернусь.
Поясни вот это: "язык (Форт --- прим. моё.) описывает
собственный синтаксис и метод компиляции."
Что ты имел в виду?
---
...Я работаю антинаучным аферистом...
Luxoft
Ни фига себе! И я там же, в R&D. Ты в каком отделе?
Ушел. Был в Делле.
C. Возможно потому, что я мало на нём пишу... хотя раньше писал на нём много и он мне тоже нравился (для сведения: много пишу на C# и Java).
>целым числом. А не "по модулю эн."
Не сказал бы. Мне вот, например, очень нравятся некоторые фишки помодульной арифметики. Я в ней привык думать.
>Таким образом, тебе приходится отдельно описывать действие,
>прикладывая дополнительные усилия.
Отнюдь. Действие ВСЕГДА приходится описывать. В ООП парадигме я его разбиваю на два действия - выдать кусок данных и получить кусок данных, при этом каждый объект реализует эти действия как ему угодно.
Пример ты очень смешной привел, спасибо!
>как предполагается описание срествами ООП действий,
>дающих в итоге качественно отличный объект?
>Например, "внешнее произведение:" ab^+.
Ты принципально только на ФЯ пишешь? Или, может быть, ты вообще теоретически программирование знаешь? Или ты что-то странное понимаешь под словами "качественно отличный объект"?
Кстати, любой алгоритм можешно реальзовать на машине тьюринга (типа тавтология на самом деле). Средствами ООП можно реальзовать машину тьюринга. А парадигма - она в голове. Поясни, что такое внешнее произведение.
>Поясни вот это: "язык (Форт --- прим. моё.) описывает
>собственный синтаксис и метод компиляции."
>Что ты имел в виду?
В мега-книжке про форт был пример на 15 строчек реализующий интерпретацию инфиксной записи, а потом еще 10 строчек на объявление паскалевского стиля переменных, а потом еще строчек 10 на дополнительную фигню. В результате форт-машина понимает почти паскаль. Меня это поразило до глубины души.
Шекспир - это что-то с чем-то!
>> целым числом. А не "по модулю эн."
> Не сказал бы. Мне вот, например, очень нравятся некоторые фишки помодульной арифметики. Я
> в ней привык думать.
Например?
Ранняя оптимизация вредна.
>> Таким образом, тебе приходится отдельно описывать действие,
>> прикладывая дополнительные усилия.
> Отнюдь. Действие ВСЕГДА приходится описывать.
Я имел в виду другое.
Если брать сильную типизацию, то свойства функции можно вывести
из того, как она употребляется, без привлечения человека (или с
наименьщим привлечением его).
>> как предполагается описание срествами ООП действий,
>> дающих в итоге качественно отличный объект?
>> Например, "внешнее произведение:" ab^+.
> Ты принципально только на ФЯ пишешь?
Я не только на ФЯ пишу.
> Или ты что-то странное понимаешь под словами "качественно отличный объект"?
Как итог некоторых действий получаются объекты, качественно
отличающиеся от исходных, они не могут быть получены как
"немного изменённые" исходные.
Я не понимаю, как ООП может справиться с этим в рамках себя самой.
> Кстати, любой алгоритм можешно реальзовать на машине тьюринга
> (типа тавтология на самом деле). Средствами ООП можно
> реальзовать машину тьюринга. А парадигма - она в голове.
> Поясни, что такое внешнее произведение.
Средства ФЯ (за исключением редких случаев) полностью
соответствуют целям. Даже сферический пылесос не надо
изобретать.
Тезис Чёрча, однако.
> В мега-книжке про форт был пример на 15 строчек реализующий
> интерпретацию инфиксной записи, а потом еще 10 строчек на
> объявление паскалевского стиля переменных, а потом еще строчек
> 10 на дополнительную фигню. В результате форт-машина понимает
> почти паскаль. Меня это поразило до глубины души.
Если не секрет, что за книжка?
Если учесть объявление переменной в Форте, почти полностью
соответствуют такому, которое использует Паскаль,
то это неудивительно.
---
...Я работаю антинаучным аферистом...
>из того, как она употребляется, без привлечения человека (или с
>наименьщим привлечением его).
Пример! Не такой смешной, как предыдущий, пожалуйста. Если тебе покажется, что я чего-то не пойму, пиши комментарии.
>Как итог некоторых действий получаются объекты, качественно
>отличающиеся от исходных, они не могут быть получены как
>"немного изменённые" исходные.
Пример! На русском языке! Я честно не понимаю, что ты имеешь в виду!
>Если не секрет, что за книжка?
>Если учесть объявление переменной в Форте, почти полностью
>соответствуют такому, которое использует Паскаль,
>то это неудивительно.
Есть подозрение, что ты нифига не понимаешь форт так, как понимаю его я, хотя я в жизни на нем ни строчки не написАл. В форте нет объявлений переменных. Зато ":" - это тоже слово.
>> из того, как она употребляется, без привлечения человека (или с
>> наименьщим привлечением его).
> Пример! Не такой смешной, как предыдущий, пожалуйста. Если тебе покажется, что я чего-то не
> пойму, пиши комментарии.
Standard ML of New Jersey, Version 110.0.7, September 28, 2000 [CM; autoload enabled]
- fun rep 0 f x = x | rep n f x = f(rep (n-1) f x);
val rep = fn : int -> ('a -> 'a) -> 'a -> 'a
Здесь мне услужливо сообщают, что f должно быть отображением
произвольного "а" в тот же "а."
Для того, чтобы использовать rep, не надо дополнительно
объявлять, каким должно быть f.
>> Как итог некоторых действий получаются объекты, качественно
>> отличающиеся от исходных, они не могут быть получены как
>> "немного изменённые" исходные.
> Пример! На русском языке! Я честно не понимаю, что ты имеешь в виду!
Например, то же получение матрицы внешним произведением
векторов.
Можно подобрать и физический пример, исходя из того, что эти
векторы и матрицы моделируют.
>> Если не секрет, что за книжка?
Ладно. Допустим, что это тайна за семью печатями.
> Есть подозрение, что ты нифига не понимаешь форт так, как
> понимаю его я, хотя я в жизни на нем ни строчки не написАл.
Очень даже вероятно.
Я на нём пишу.
> В форте нет объявлений переменных. Зато ":" - это тоже слово.
Location: http://forth.sourceforge.net/standard/fst83/fst83-12.htm
12. REQUIRED WORD SET
12.1 The Required Word Set Layers
<...>
Compiler layer
+LOOP , ." : ; ABORT" ALLOT BEGIN COMPILE CONSTANT
CREATE DO DOES> ELSE IF IMMEDIATE LEAVE LITERAL LOOP
REPEAT STATE THEN UNTIL VARIABLE VOCABULARY WHILE
~~~~~~~~
['] [COMPILE] ]
Подчёркнуто мною.
Location: http://www.tinyboot.com/ANS/dpans6.htm
6.1.2410 VARIABLE
CORE
( "<spaces>name" -- )
Skip leading space delimiters. Parse name delimited by a space. Create a definition for name with
the execution semantics defined below. Reserve one cell of data space at an aligned address.
name is referred to as a variable.
name Execution: ( -- a-addr )
a-addr is the address of the reserved cell. A program is responsible for initializing the contents
of the reserved cell.
See: 3.4.1 Parsing, A.6.1.2410 VARIABLE
---
...Я работаю антинаучным аферистом...
Оставить комментарий
ray144
Граждане форумчане, предлагаю обсуждение сего предмета: какой язык программирования вам нравится и почему? Т. е. именно нравится, а это не обязательно тот язык, на котором вы, скажем, ежедневно работаете.Лично мне по душе C#; он для меня как C++, только доведённый до ума.
Конечно, там, где важна скорость работы приложения, приходится возвращаться на C++.