Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     02 Apr 2005  12:22:49
 To : Alexei Ivanov
 Subject : Re: perl syntax
 -------------------------------------------------------------------------------- 
 
 Alexei Ivanov -> Artem Chuprina  @ Fri, 1 Apr 2005 22:49:45 +0000 (UTC):
 
  >>  >>  AI> double PSI   = *(double *)(BUFFER+152);
  >>  AI> Я опять ничего не понял... Что значит между двумя программами...?
 
  >> Это значит, что даже две сишные программы, но скомпилированные разными
  >> компиляторами или даже одним, но с разными настройками, могут дать на
  >> одном компьютере разные результаты при чтении одного и того же такого
  >> файла.
 
  AI> Спасибо за информацию. Хотя вообще странно,
  AI> ведь есть же в С деление на разные типы данных
  AI> float, double, long double
 
 Ты вообще стандарт C про эти типы видел?  Ты вообще в курсе, что про их
 размеры никто никому почти ничего не обещал?  То есть обещали, что short
 не длиннее, чем int, а тот, в свою очередь не длиннее, чем long.
 Аналогично про цепочку float-double-long double.  Все.
 
  AI> Как же получается что разные компиляторы выдают разное?
  AI> Ведь машина то одна и все эти форматы имеют машинное представление.
 
 Имеют.  Hо для каждого компилятора при каждой настройке - свое.
 _Обычно_ double - это естественное представление числа с плавающей
 точкой на данной архитектуре.  Hо никто не обещал.  С float все еще хуже
 - оно либо тот же double, либо половинная точность (совершенно не
 обязательно половинный размер).
 
  AI> До этого компилилось под watcom и винды.
  AI> Теперь понятное дело linux и gcc или perl ;-)
 
 Вот ваткомы мы не тестировали...
 
  >> Так ты так и не сказал, от какой архитектуры и каких настроек имеется в
  >> виду double.
 
  AI> Допустим, что мы имеем float длиной 4 байта.
  AI> Вот код на С:
  AI> float xinval = *(float *)(BUFFER+32);
 
 $xinval = unpack('f', substr($data,32));
 
 Hа самом деле там наверняка есть и другие данные, в этом буфере.  Так
 вот, на перле, в отличие от C, они будут извлечены одним оператором,
 писать несколько выражений с substr здесь совершенно незачем - unpack
 умеет выдавать список.
 
  >>  >> А во-вторых, судя по тому, что я вижу, ты кроме 32-битных
  >>  >> интел-совместимых никаких аппаратных архитектур просто на практике не
  >>  >> видел...  Hа sparc этот код при первой попытке его выполнения приведет к
  >>  >> SIGBUS (BUFFER-то, скорее всего, выровнено...).  Если смещение окажется
  >>  >> более "удачным", глюк ты будешь ловить очень долго...
  >>  AI> Человек говорит. У меня есть запор и нужно отвести шкаф на дачу,
  >>  AI> а ему говорят. Эх парень - не видал ты мерседесов...
  >>  AI> Мысль понятна?
  >> То есть ты пишешь не программу, а утилиту для одноразового запуска?  И
  >> ты пишешь ее на С?!
  AI> Почему одноразового? Я об этом не говорил.
  AI> Этих бинарных файлов несколько тысяч...
  AI> Хотя если честно, то я не знаю сколько.
  AI> ...
  AI> А во посчитал... :-) 15 тыс...
  AI> Есть еще данные с другой машины
  AI> там тоже столько же как минимум...
 
 Это одноразовый.  Для обработки 15 тысяч файлов.  В смысле "запустил,
 обработал, выкинул программу".  В таком раскладе можно позволить себе
 заложиться на конкретную платформу, и на C так и будет сделано.  Hа
 перле тоже можно, но смысла нет.
 
  AI> 1. upload файла через веб интерфейс.
 
 perldoc CGI.  Hо если их 15 тысяч, то не вполне понятно, зачем.  Все
 равно робота для аплоада писать (perldoc LWP, если уж на то пошло), не
 руками же их заливать, но если робота писать, то непонятно, при чем тут
 веб-интерфейс.
 
  AI> 2. разбор по косточкам, вытаскивание
  AI> из бинарного файла параметров измерений
  AI> и самой зависимости y(x)
 
 unpack, если отдавать в perl
 
  AI> 3. убирание промахов измерений и шума.
  AI> 4. сглаживание
  AI> 5. определение максимумов (минимумов)
  AI> 6. для некоторых значимых максимумов
  AI> нахождение значений x0, y0, полуширины, ассиметрии
 
 Математика обыкновенная.  Если там очень много работы, то может
 потребоваться сишная вставка (perldoc perlxs), но я бы для начала
 наскоро реализовал прямо на перле и посмотрел, что получается.
 Переписывать на C только если не успевает.
 
 В случае переписывания на C unpack пойдет после этого этапа.
 
  AI> 7. создание на этой основе файла результатов
  AI> в текстовом формате до наст. времени и файла xml
  AI> формата после наст времени. :-)
 
 print :-)
 
  AI> 8. предоставление пользователю через веб
  AI> результатов для проверки и корректуры (машина
  AI> не все может сделать сама...)
 
 perldoc CGI опять же.
 
  AI> 9. запись параметров измерений и значений найденых
  AI> в пункте 6 (8) в базу данных как и ссылку на новый файл
  AI> пока текстового формата.
 
 Если это действительно база данных (не путать с DBM и MS Access), то
 perldoc DBI.
 
  AI> 10... запросы пользователя к базе по поводу
  AI> появившейся там информации...
 
 Комбинация CGI и DBI.
 
  AI> Hа текущий момент шаги 1,8-10...
  AI> делаются на PHP, остальное на С.
 
 В принципе, у тебя уже нормальная архитектура.  Стремиться к сведению
 всего в один язык тут никакого смысла не видно.  Да и все равно не
 сведешь - у базы данных же еще SQL.  Hу, можно PHP перлом заменить, если
 на нем веб-интерфейс рихтовать удобнее.  Hо прежде чем это делать, стоит
 вспомнить поговорку юниксовых сисадминов: не сломалось - не чини.  А
 вообще стоит привыкнуть к мысли, что хороший программист использует то
 средство, которым удобно решать данную задачу, и в результате крупный
 проект у него часто написан на 2-3 разных языках, потому как состоит из
 разных задач.  Как нетрудно по этому тезису догадаться, хороший
 программист - он и владеет _разными_ средствами.  В смысле -
 принципиально разными.  Каким-нибудь низкоуровневым языком типа C,
 парой-тройкой glue languages (sh, tcl, perl, python, ruby), парой
 функциональных (классический lisp в виде Common Lisp или Scheme, Ocaml),
 специфическими инструментальными средствами предметной области (для
 вычислительной математики существуют программы и библиотеки для
 вычислений, как чисметодов, так и символьных, для рисования графиков,
 для статистического анализа).  И комбинирует их с помощью этих самых
 glue languages так, как ему надо.  Какие-то специфические средства в
 glue languages уже вкручены в качестве библиотек.  Так, во все
 перечисленные, кроме sh, вкручены средства работы с сетью, средства
 организации web-интерфейса, средства быстрой сборки пользовательского
 интерфейса (не чтоб очень красиво, но чтоб свою задачу выполняло, и
 долго с этим не возиться), минимальные средства обработки графики
 (посчитать размер, вывести картинку в интерфейс), средства обработки
 текста, в том числе развесисто структурированного.  В перле есть еще
 серия модулей Math::, там вполне может быть изрядное количество нужной
 математики.  А может и не быть...
 
 -- 
 Artem Chuprina
 RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
 
 Проявил себя?
 Закрепи!
   Кнышев
 --- ifmail v.2.15dev5.3
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 perl syntax   Alexei Ivanov   31 Mar 2005 06:35:04 
 Re: perl syntax   Alexei Ivanov   31 Mar 2005 06:50:42 
 Re: perl syntax   "Andrei Egorov   31 Mar 2005 09:14:22 
 Re: perl syntax   Artem Chuprina   31 Mar 2005 11:58:31 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 02:54:43 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 12:01:46 
 Re: perl syntax   "Andrei Egorov   31 Mar 2005 09:00:32 
 Re: perl syntax   Alexei Ivanov   31 Mar 2005 10:30:45 
 Re: perl syntax   Serge Chervjakov   31 Mar 2005 11:51:16 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 02:22:57 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 11:40:53 
 Re: perl syntax   Artem Chuprina   31 Mar 2005 12:02:06 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 03:01:17 
 Re: perl syntax   Ruslan Kosolapov   01 Apr 2005 03:43:43 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 04:07:25 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 12:09:53 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 17:57:23 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 20:21:20 
 Re: perl syntax   Alexei Ivanov   02 Apr 2005 02:52:16 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 12:08:20 
 Re: perl syntax   Serge Chervjakov   01 Apr 2005 09:39:18 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 12:06:19 
 Re: perl syntax   "Andrei Egorov   31 Mar 2005 15:00:55 
 Re: perl syntax   Sergey Leschenko   31 Mar 2005 16:28:38 
 Re: perl syntax   Serge Chervjakov   31 Mar 2005 18:40:19 
 Re: perl syntax   Artem Chuprina   31 Mar 2005 23:28:27 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 03:26:27 
 Re: perl syntax   Serge Chervjakov   01 Apr 2005 09:55:36 
 Re: perl syntax   Ivan Frolkov   01 Apr 2005 10:23:18 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 17:44:40 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 11:35:47 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 17:51:51 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 20:18:11 
 Re: perl syntax   Alexei Ivanov   02 Apr 2005 02:49:45 
 Re: perl syntax   Artem Chuprina   02 Apr 2005 12:22:49 
 Re: perl syntax   Konstantin Tokar   01 Apr 2005 21:30:51 
 Re: perl syntax   Alexei Ivanov   02 Apr 2005 02:56:53 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 03:21:55 
 Re: perl syntax   Serge Chervjakov   01 Apr 2005 09:47:58 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 03:16:52 
 Re: perl syntax   Igor Chumak   01 Apr 2005 10:53:29 
 Re: perl syntax   "Andrei Egorov   01 Apr 2005 11:06:13 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 12:15:29 
 perl syntax   Andrew Alakozow   31 Mar 2005 06:50:08 
 Re: perl syntax   Eugene Kuzin   31 Mar 2005 13:32:26 
 Re: perl syntax   Artem Chuprina   31 Mar 2005 11:56:27 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 02:52:42 
 Re: perl syntax   Ruslan Kosolapov   01 Apr 2005 03:35:29 
 Re: perl syntax   Alexei Ivanov   01 Apr 2005 04:01:50 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 11:59:12 
 perl syntax   Bulat Ziganshin   02 Apr 2005 00:44:34 
 Re: perl syntax   Alexei Ivanov   02 Apr 2005 20:36:47 
 perl syntax   Bulat Ziganshin   02 Apr 2005 21:29:31 
 Re: perl syntax   Artem Chuprina   02 Apr 2005 23:58:07 
 perl syntax   Bulat Ziganshin   03 Apr 2005 02:51:20 
 Re: perl syntax   Alexei Ivanov   03 Apr 2005 06:30:02 
 Re: perl syntax   Artem Chuprina   03 Apr 2005 08:06:12 
 perl syntax   Bulat Ziganshin   03 Apr 2005 19:04:22 
 Re: perl syntax   Alexei Ivanov   04 Apr 2005 01:50:25 
 Re: perl syntax   Serge Chervjakov   04 Apr 2005 02:43:55 
 Hа: perl syntax   Alexander V. Gaiduk   04 Apr 2005 10:34:48 
 Re: perl syntax   Artem Chuprina   03 Apr 2005 08:05:11 
 perl syntax   Bulat Ziganshin   03 Apr 2005 19:07:47 
 Re: perl syntax   Alexei Ivanov   04 Apr 2005 01:49:18 
 Re: perl syntax   Serge Chervjakov   04 Apr 2005 02:48:00 
 perl syntax   Dmitry Grebeniuk   04 Apr 2005 13:35:16 
 Re: perl syntax   Artem Chuprina   04 Apr 2005 16:12:38 
 Re: perl syntax   Alexei Ivanov   03 Apr 2005 00:00:40 
 Re: perl syntax   Artem Chuprina   03 Apr 2005 08:03:41 
 perl syntax   Dmitry Grebeniuk   04 Apr 2005 14:10:58 
 perl syntax   Bulat Ziganshin   04 Apr 2005 19:10:51 
 perl syntax   Dmitry Grebeniuk   05 Apr 2005 08:02:36 
 perl syntax   Bulat Ziganshin   05 Apr 2005 23:04:29 
 Re: perl syntax   Artem Chuprina   06 Apr 2005 11:33:20 
 perl syntax   Bulat Ziganshin   06 Apr 2005 20:52:27 
 perl syntax   Dmitry Grebeniuk   07 Apr 2005 08:27:18 
 perl syntax   Bulat Ziganshin   07 Apr 2005 19:30:09 
 Re: perl syntax   Artem Chuprina   07 Apr 2005 15:41:58 
 perl syntax   Bulat Ziganshin   07 Apr 2005 19:33:37 
 Re: perl syntax   Artem Chuprina   08 Apr 2005 11:46:02 
 Re: perl syntax   Ruslan Kosolapov   01 Apr 2005 20:43:38 
 Re: perl syntax   Alexei Ivanov   02 Apr 2005 02:55:52 
 Re: perl syntax   Ruslan Kosolapov   02 Apr 2005 03:37:20 
 Re: perl syntax   "Andrei Egorov   01 Apr 2005 11:27:06 
 Re: perl syntax   Artem Chuprina   01 Apr 2005 11:56:10 
Архивное /ru.perl/342604fd0fb78.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional