Разговоры о компьютерах

 
1 28 29 30 31 32 98
+
-
edit
 

Balancer

администратор
★★★★★
Twitter блоги Интернет
Захожу в Twitter за последнюю неделю в третий раз. И в третий раз, при попытке хоть что-то сделать, получаю «Twitter is over capacity». Хм.

// Транслировано с juick.com
 

+
-
edit
 

Mishka

модератор
★★★
Balancer> У Мишки какая-то мешанина в этом вопросе. Настолько страшная, что даже спорить неинтересно :)

Не, я просто этим делом плотно занимался. И споры про это у нас были в далёком 1988. :) С тех пор всё порешили, только наблюдали за методами и теорией.

Просто у народа очень упрощённое понимание — как в книжках для чайников. :)
 3.6.83.6.8
+
-
edit
 

Balancer

администратор
★★★★★
Mishka> Не, я просто этим делом плотно занимался.

Я тоже. При чём много занимался Фортом, где два этих подхода сразу в одном флаконе :)

Mishka> Просто у народа очень упрощённое понимание — как в книжках для чайников. :)

Не... Упрощённое понимание у тех, кто считает, что компиляция - это то, что в машинный код :D

...

По твоему же варианту получается, что «чистых компиляторов» вообще нет в природе. И, более того, компилятор или интерпретатор у нас будет зависит даже не только от конкретной реализации, а вот набора используемых функций ;)
 3.6.83.6.8
+
-
edit
 

Mishka

модератор
★★★
Balancer> Я тоже. При чём много занимался Фортом, где два этих подхода сразу в одном флаконе :)

Я знаю. А Форт и был одним из первых, кто внёс смущение в ряды интерпретаторописателей. Smalltalk был вторым со своей средой и популярного ныне подхода — MVC паттерна. Я тебе могу бросить ссылку на статью про это дело. Тогда про паттерны ещё никто не заикался.

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

Balancer> Не... Упрощённое понимание у тех, кто считает, что компиляция - это то, что в машинный код :D

Чистая компиляция так и представляется. Только в машинный код какой-то архитектуры.

Balancer> По твоему же варианту получается, что «чистых компиляторов» вообще нет в природе. И, более того, компилятор или интерпретатор у нас будет зависит даже не только от конкретной реализации, а вот набора используемых функций ;)

На данный момент — нет. Паскаль был одинм из ненмногих, которые это допускали. Потому от таких языков отказались.

С ф-ями всё интереснее. Если это часть языка, как в Паскале, то там всё можно развернуть в коды сразу. Потому их операторами ввода-вывода (ФОРТРАН тут особенный). Но народ понял, что такие вещи не добавляют гибкости. Поэтому потопал в сторону библиотек. Хоть и времени исполнения. Но заметь, что библиотека такая управляется внешней программой — для ввода-вывода это тот самый формат. И тут отличие от компилятора нет — библиотека ввода-вывода в этом смысле сама есть интерпретатор.
 3.6.83.6.8

AXT

инженер вольнодумец
★☆
А с обратной стороны можно вспомнить, как обычно реализуются ленивые вычисления — вместо собственно вызова функции на куче создаётся thunk, т.е. кусочек кода, вызывающий функцию с нужными аргументами. И в тот момент, когда значение действительно нужно — соответствующий thunk вызывается, и раскручивается всё дерево вызовов. При этом во всём остальном язык может быть совершенно статическим и полностью компилируемым :)
Но тем не менее — часть машинного кода порождается во время исполнения.

Это интерпретатор или компилятор? :)
... так пускай наступает на нас холодным рассветом новый день ...  3.6.83.6.8

Mishka

модератор
★★★
AXT> Но тем не менее — часть машинного кода порождается во время исполнения.
AXT> Это интерпретатор или компилятор? :)
НУ, APL был интерпретатором. :) Но я и говорю, что на данный момент всё смешалось — и компиляторы используют технику интерпретаторов, и интерпретаторы технику компиляторов. Потому давно не спорят. :)

Кстати, в том же APL-е и параметры вызова заранее не известны — там матричных вычислений море и в конце может понадобиться вовсе один столбец и конкретное значение из вектора. :)
 3.6.83.6.8
+
-
edit
 

Balancer

администратор
★★★★★
Mishka> Но я и говорю, что на данный момент всё смешалось — и компиляторы используют технику интерпретаторов, и интерпретаторы технику компиляторов. Потому давно не спорят. :)

Мы живём в разных Вселенных :D
 3.6.83.6.8

KDvr

втянувшийся

А все-таки, какой компилятор АЛГОЛА посоветуете?

Я хочу попробовать привести часть программы к нормальному виду и откомпилировать без ошибок. Это уже дело принципа.
А то, когда компилятор даже на комменты материться у меня нервный тик начинается.
 6.06.0
RU Владимир Малюх #05.08.2010 18:16  @KDvr#05.08.2010 09:04
+
-
edit
 
KDvr> А все-таки, какой компилятор АЛГОЛА посоветуете?

Под какую ОС? Попробую сросить у знакомых "алгольщиков", может что посоветуют... Сам я алголом (в отличие от Модулы-2 :)) никогда не пользовался.
Maschinen muessen "idiotensicher" werden  7.07.0
DE KDvr #05.08.2010 22:32  @Владимир Малюх#05.08.2010 18:16
+
-
edit
 

KDvr

втянувшийся

В.М.> Под какую ОС? Попробую сросить у знакомых "алгольщиков", может что посоветуют... Сам я алголом (в отличие от Модулы-2 :)) никогда не пользовался.

Основная все еще XP, короче Винда.
 3.6.63.6.6
RU Владимир Малюх #06.08.2010 07:18  @KDvr#05.08.2010 22:32
+
-
edit
 
KDvr> Основная все еще XP, короче Винда.

Посоветовали вот это Algol 68 Genie - Algol 68 Compiler, Interpreter and Revised Report

А в целом сказали - померший язык, как латынь.
Maschinen muessen "idiotensicher" werden  8.08.0
DE KDvr #06.08.2010 09:24  @Владимир Малюх#06.08.2010 07:18
+
-
edit
 

KDvr

втянувшийся

В.М.> Посоветовали вот это Algol 68 Genie - Algol 68 Compiler, Interpreter and Revised Report

Спасибо большое!

В.М.> А в целом сказали - померший язык, как латынь.

Да, это понятно. Просто программа есть из какой-то диссертации за 73, кажется, год. И ее нужно:
1. проверить (она в печатном виде, в качестве "аппендикса" к диссеру);
2. исправить;
3. дополнить;
4. переписать в MathLAB.

А вообще есть у кого-нибудь методология перевода программ из одного языка программирования в другой?

По шагам. Например.
Пример 1.
1. Анализ структуры, выделение основных модулей (функции, подпрограммы и т.д.);
2. Приведение переменных к требуемому виду;
3. Перевод помодульно, опираясь на более мелкие структурные элементы (циклы, условия и т.д.);
4. тестирование.

Или как-то по-другому?
Пример 2.
1. Корректировка программы на исходном языке;
2. Запуск с тестовым набором данных, получение результатов;
3. Далее по шагам 1-4 из Примера 1.
 6.06.0
RU Алдан-3 #06.08.2010 11:29  @KDvr#06.08.2010 09:24
+
-
edit
 

Алдан-3

аксакал
★★☆
KDvr> А вообще есть у кого-нибудь методология перевода программ из одного языка программирования в другой?

Применяю следующий подход:

1. Анализ и "вскрытие" алгоритма работы и внутренней "математики".
2. При необходимости/возможности оптимизация/правка.
3. Реализовать заново полученный алгоритм на новом языке.

При этом если речь идёт об использовании более нового языка обязательно следует заменять всё что можно на стандартные функции и библиотеки (кроме ситуации когда критичен малый размер и быстродействие).

Как показывает личный опыт это быстрее чем пытаться "перевести" программу с языка на язык и долго-долго отлаживать.

"Кажется так" (ц)
Особенно его раздражало то, что его постоянно спрашивали, чем он так раздражен.  3.6.83.6.8
US Спокойный_Тип #06.08.2010 14:03  @Алдан-3#06.08.2010 11:29
+
-
edit
 
подстава, оказывается с длинными названиями слайсов df тупо их начинае на две строки разбивать, типа
code text
  1. /dev/mapper/vg00-Oratmpdata
  2.                       5.0G  4.2G  575M  88% /Oratmpdata
  3. /dev/mapper/vg00-Orasysdata
  4.                       5.0G  1.6G  3.2G  34% /Orasysdata
  5. /dev/mapper/vg00-Oraidxdata
  6.                       9.9G  822M  8.6G   9% /Oraidxdata
  7. /dev/mapper/vg00-Oradata
  8.                        30G  7.7G   21G  28% /Oradata
  9. /dev/mapper/vg00-Oraclelog
  10.                       2.0G  368M  1.6G  20% /Oraclelog
  11. /dev/mapper/vg00-Oracle
  12.                       5.0G  3.1G  1.6G  67% /Oracle
  13. /dev/mapper/vg00-Scripts
  14.                        20G  1.2G   18G   7% /Scripts

соответсвенно скрипты которые секут проблемы с местом - тупо офигевают, придется дописывать к BigBrother какой-то скрипт на перле подменяющий df
эволюционируй или вымри  3.6.83.6.8
RU Balancer #06.08.2010 14:42  @спокойный тип#06.08.2010 14:03
+
-
edit
 

Balancer

администратор
★★★★★
Спокойный_Тип> подстава, оказывается с длинными названиями слайсов df тупо их начинае на две строки разбивать, типа

Гы. А что, раньше с таким не доводилось сталкиваться? :)

Спокойный_Тип> соответсвенно скрипты которые секут проблемы с местом - тупо офигевают

Фиговые скрипты :) Про ключики, подобные -P не знают :)
 3.6.63.6.6
US Спокойный_Тип #06.08.2010 16:59  @Balancer#06.08.2010 14:42
+
-
edit
 
Спокойный_Тип>> подстава, оказывается с длинными названиями слайсов df тупо их начинае на две строки разбивать, типа
Balancer> Гы. А что, раньше с таким не доводилось сталкиваться? :)
Спокойный_Тип>> соответсвенно скрипты которые секут проблемы с местом - тупо офигевают
Balancer> Фиговые скрипты :) Про ключики, подобные -P не знают :)

раньше не сталкивался )))
угу, других скриптов у нас для вас нет ))

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

code text
  1. [bbuser@.... bin]$ ./edf.pl
  2. Filesystem                                 1K-blocks  Used      Available  Use%  Mounted_on
  3. /dev/cciss/c0d0p3                          988116     277800    659312     30%   /
  4. /dev/cciss/c0d0p5                          2972236    130464    2688356    5%    /var
  5. /dev/cciss/c0d0p2                          4956316    4175084   525400     89%   /usr
  6. /dev/cciss/c0d0p1                          101086     14080     81787      15%   /boot
  7. tmpfs                                      1037720    0         1037720    0%    /dev/shm
  8. /dev/mapper/vg00-opt                       1032088    145416    834244     15%   /opt
  9. /dev/mapper/vg00-tmp                       1032088    178712    800948     19%   /tmp
  10. /dev/mapper/vg00-home                      5160576    256248    4642184    6%    /home
  11. /dev/mapper/vg00-Oratmpdata                5160576    4309768   588664     88%   /Oratmpdata
  12. /dev/mapper/vg00-Orasysdata                5160576    1635432   3263000    34%   /Orasysdata
  13. /dev/mapper/vg00-Oraidxdata                10321208   841520    8955400    9%    /Oraidxdata
  14. /dev/mapper/vg00-Oradata                   30963708   8016780   21374064   28%   /Oradata
  15. /dev/mapper/vg00-Oraclelog                 2064208    376212    1583140    20%   /Oraclelog
  16. /dev/mapper/vg00-Oracle                    5160576    3240308   1658124    67%   /Oracle
  17. /dev/mapper/vg00-Scripts                   20642428   1189540   18404312   7%    /Scripts
  18. /dev/mapper/vg00-Backup                    53318156   45958528  4651148    91%   /Backup
  19. /usr/Enterprise-R5-U4-Server-i386-dvd.iso  2872402    2872402   0          100%  /mnt/linux_iso
  20. [bbuser@... bin]$ df -P
  21. Filesystem         1024-blocks      Used Available Capacity Mounted on
  22. /dev/cciss/c0d0p3       988116    277800    659312      30% /
  23. /dev/cciss/c0d0p5      2972236    130464   2688356       5% /var
  24. /dev/cciss/c0d0p2      4956316   4175084    525400      89% /usr
  25. /dev/cciss/c0d0p1       101086     14080     81787      15% /boot
  26. tmpfs                  1037720         0   1037720       0% /dev/shm
  27. /dev/mapper/vg00-opt   1032088    145416    834244      15% /opt
  28. /dev/mapper/vg00-tmp   1032088    178712    800948      19% /tmp
  29. /dev/mapper/vg00-home   5160576    256248   4642184       6% /home
  30. /dev/mapper/vg00-Oratmpdata   5160576   4309768    588664      88% /Oratmpdata
  31. /dev/mapper/vg00-Orasysdata   5160576   1635432   3263000      34% /Orasysdata
  32. /dev/mapper/vg00-Oraidxdata  10321208    841520   8955400       9% /Oraidxdata
  33. /dev/mapper/vg00-Oradata  30963708   8016780  21374064      28% /Oradata
  34. /dev/mapper/vg00-Oraclelog   2064208    376212   1583140      20% /Oraclelog
  35. /dev/mapper/vg00-Oracle   5160576   3240308   1658124      67% /Oracle
  36. /dev/mapper/vg00-Scripts  20642428   1189540  18404312       7% /Scripts
  37. /dev/mapper/vg00-Backup  53318156  45958528   4651148      91% /Backup
  38. /usr/Enterprise-R5-U4-Server-i386-dvd.iso   2872402   2872402         0     100% /mnt/linux_iso
  39. [bbuser@... bin]$
эволюционируй или вымри  3.6.83.6.8
RU Владимир Малюх #08.08.2010 10:33  @KDvr#06.08.2010 09:24
+
-
edit
 
KDvr> А вообще есть у кого-нибудь методология перевода программ из одного языка программирования в другой?

Наши соседи (их босс - мой однокашник и сосед по общаге) этимзанимаются на регулярной основе XDS - бесплатная система программирования для Modula-2/Oberon-2

В свое время приходилось немало вручную с Модулы на С переписывать - лобовым способом. Так как софт был ранее написан собственноручно - выскрывать алгоритмы нужды не было. :)
Maschinen muessen "idiotensicher" werden  8.08.0
+
-
edit
 

Mishka

модератор
★★★
Может кому интересно будет. :) Пока на английском, потом переведу.

Тони Хоар или
Sir Charles Antony Richard Hoare (Tony Hoare or C.A.R. Hoare, born January 11, 1934) is a British computer scientist, probably best known for the development in 1960 of Quicksort (or Hoaresort), one of the world's most widely used sorting algorithms.

He also developed Hoare logic for verifying program correctness, and the formal language Communicating Sequential Processes (CSP) used to specify the interactions of concurrent processes (including the Dining philosophers problem) and the inspiration for the Occam programming language.
 

Читает вот такие лекции (про null) :F
Speakers -> Null References: The Billion Dollar Mistake
Presentation: "Null References: The Billion Dollar Mistake"
Track: Historically bad ideas

Time: Friday 13:00 - 14:00

Location: Abbey Room
Abstract: I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965.
 



Вот здесь есть видео его аналогичного выступления на другой конференции InfoQ: Null References: The Billion Dollar Mistake
Summary
Tony Hoare introduced Null references in ALGOL W back in 1965 “simply because it was so easy to implement”, says Mr. Hoare. He talks about that decision considering it “my billion-dollar mistake”.

Bio
Sir Charles Antony Richard Hoare, commonly known as Tony Hoare, is a British computer scientist, probably best known for the development in 1960, at age 26, of Quicksort. He also developed Hoare logic, the formal language Communicating Sequential Processes (CSP), and inspired the Occam programming language.

About the conference
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community. QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
 


Кому интересно, его основная работа посвящена взаимодействию слабо связанных параллельных процессов и построению математической теории для описания этих взаимодействий. Книга доступна бесплатно в pdf формате на этой странице Communicating Sequential Processes (CSP), by C. A. R. Hoare (Electronic Version), для совсем ленивых — http://www.usingcsp.com/cspbook.pdf. Существует перевод на русский язык первого издания, сделанный Аней Бульонковой (или под её редакцией? — точно не помню, надо будет эту книжку поискать — есть она у меня).
 3.6.83.6.8
RU Владимир Малюх #09.08.2010 12:15  @Mishka#08.08.2010 12:15
+
-
edit
 
Mishka> Существует перевод на русский язык первого издания, сделанный Аней Бульонковой (или под её редакцией? — точно не помню, надо будет эту книжку поискать — есть она у меня).

Преводила Аня, под редакцие А.П. Ершова

Вот электронная, на русском http://pvt.ami.nstu.ru/chair/files/hoar/hoar.pdf
Maschinen muessen "idiotensicher" werden  8.08.0
RU Kernel3 #09.08.2010 21:39  @Владимир Малюх#09.08.2010 12:15
+
-
edit
 

Kernel3

аксакал

The Blue Screen of Exploding Oil Rigs

*Think they'll sue Microsoft? Wait, nobody ever successfully does that, no matter what the software does. ----------------------------...

// www.wired.com
 


Дровопейсатели - страшные люди © Особенно, если это индо-кЕтайцы :F Ну или железяку несовместимую подсунули - тоже вариант.
Broken Windows® cures my ills and makes me feel alright... ©  
RU Спокойный_Тип #10.08.2010 12:19
+
-
edit
 
будни глоболизированного ИТ - индусский саппорт английской телеком компании с трудом понимает что Хабаровск очень далеко от европейской части и когда они просыпаются по своему средне-индийскому времени - Хабаровск уже ужинает )) и что послать специалиста тех саппорта в Хабаровск из европейской части...это жесть
вообще просто жесть ))
эволюционируй или вымри  3.6.83.6.8
RU Полл #10.08.2010 18:34  @спокойный тип#10.08.2010 12:19
+
-
edit
 

Полл

литератор
★★★★★
Для души рисую. Кто укажет на косяки?
Прикреплённые файлы:
 
 
+
-
edit
 

Jerard

аксакал

Полл> Для души рисую. Кто укажет на косяки?

А в чем фишка?
"Остановите Землю — я сойду" (С) Лесли Брикасс, Энтони Ньюли  3.6.83.6.8
+
-
edit
 

Полл

литератор
★★★★★
Jerard> А в чем фишка?
Живучесть системы.
Минимализация кабельных трасс за счет объединения силы и инфы в PLC, в мечтах - управляемые по IP через PLC оконечные устройства - потребители электроэнергии.
Связная зона покрытия беспроводной сети поверх локалки для мобильных и миниатюрных автономных (к которым не имеет смысла вести кабель) абонентских устройств, с возможностью использовать радиоканал в качестве резервного в случае повреждений линий связи.
 
+
-
edit
 

Jerard

аксакал

Полл> Живучесть системы.
На случай ядерной войны? Если нет то диагональные связи между свичами (этажными?) лишние, ИМХО.
"Остановите Землю — я сойду" (С) Лесли Брикасс, Энтони Ньюли  3.6.83.6.8
1 28 29 30 31 32 98

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru