[Конкурс] Транслятор языка

 
1 2 3 4 5 6 7 13
EE Татарин #06.08.2008 18:02  @Сергей-4030#06.08.2008 16:09
+
-
edit
 

Татарин

координатор
★★★★☆
Сергей-4030> А что насчет упрощений арифметики? Комиссия/Реконструктор, вы как? То есть, теперь уже ее реализовать не вопрос, только явно сам изобретать велосипед я не буду, поищу реализацию в интернете. И Реконструктор вряд ли будет, насколько я понимаю. Так что если возможно работать в пределах Double, то я бы лучше так и делал.
Ок, я не особо против: я и сам понимаю, что получился чуток перебор по требуемому времени.
Дело за Рекоснструктором. Конечно, если он откажется, ничего меняться не будет.
Тогда это просто я виноват. :\

Что касается plot'a, смысл был вот в чём: крайние точки на экране занимают его крайние позиции. То есть, если есть окно размером 100х100, и были нарисованы две точки - одна (10,10), другая (11,11) и третья (12,12), то первая точка будет находиться в координатах окна в (0,0), вторая (50,50) и третья в (100,100).
Затея эта ради того, чтобы рисунок можно было в любом случае глазами разглядеть, каковы бы числа ни были.
...А неубитые медведи делили чьи-то шкуры с шумом. Боюсь, мы поздно осознали, к чему всё это приведёт.  
EE Татарин #06.08.2008 18:04
+
-
edit
 

Татарин

координатор
★★★★☆
Моё мыло: k580vm80/шарик/mail.ru
...А неубитые медведи делили чьи-то шкуры с шумом. Боюсь, мы поздно осознали, к чему всё это приведёт.  
US Сергей-4030 #06.08.2008 18:57
+
-
edit
 

Сергей-4030

исключающий третье
★★
Ладно, пока что я так отправлю, как есть. То есть, чего там нет - бесконечной точности и масштабирования окна чтоб все точки влезли - вроде как, это вполне minor issue. Дождемся пока что версии Реконструктора, а потом поглядим.

Дисклаймер: не релиз! Баги вполне возможны!
 
US Сергей-4030 #06.08.2008 19:03
+
-
edit
 

Сергей-4030

исключающий третье
★★
Все, отправил. Плиз, не публиковать пока Реконструктор свой вариант не приложит.
 
+
-
edit
 

Kernel3

аксакал

Получил :)
Broken Windows® cures my ills and makes me feel alright... ©  
US Сергей-4030 #06.08.2008 19:10
+
-
edit
 

Сергей-4030

исключающий третье
★★
Ах да, еще - инструкции даны для Windows, если на Linux исполнять - посмотрите файл Interpretator.bat, там все предельно ясно.
 
US Сергей-4030 #06.08.2008 19:12  @Kernel3#06.08.2008 19:05
+
-
edit
 

Сергей-4030

исключающий третье
★★
Kernel3> Получил :)

Работает? :)
 
US Сергей-4030 #06.08.2008 19:16
+
-
edit
 

Сергей-4030

исключающий третье
★★
О, блин, первая проблема - я, оказывается, не печатаю строку, где ошибка. :( Юзерский интерфейс делал в последнюю минуту... :( Если будут проблемы - скажите, я пошлю фикс.

То есть, информация в эксепшене есть, и я когда тестировал всегда имел строку и столбец, а потом решил "почистить" вывод и убрал то, что нужно, тоже. :(
 
US Сергей-4030 #06.08.2008 19:26
+
-
edit
 

Сергей-4030

исключающий третье
★★
Первый фикс послан. :)
 
US Сергей-4030 #06.08.2008 19:44
+
-
edit
 

Сергей-4030

исключающий третье
★★
Кстати, Реконструктор, вы как? У меня, конечно, нет бесконечной арифметики, но при том точность для обычных расчетов вполне достаточная. И скорость вроде тоже вполне приличная получается. Ваша версия - она как, на подходе? Или языком болтать про дебильных джавистов одно дело, а кнопки давить - совсем уже другое? Когда ждать вашу версию?
 
US Сергей-4030 #06.08.2008 19:47
+
-
edit
 

Сергей-4030

исключающий третье
★★
Товарищи комиссия, так запустилось или нет? :)
 
US Сергей-4030 #06.08.2008 20:08
+
-
edit
 

Сергей-4030

исключающий третье
★★
Кстати, о переносимости. Зуб даю, что данные бинарники безо всяких проблем выполнятся на Линуксе. Вот поглядим, какие действия надо будет предпринять, чтоб переносить версию Реконструктора. ;)
 
US Сергей-4030 #06.08.2008 20:12
+
-
edit
 

Сергей-4030

исключающий третье
★★
Кстати, блин, ишшо один баг обнаружил. Вернее, фичу. :( Совершенно автоматически встроил комментарии в язык ( /* */ комментарят содержимое, // комментарит до конца строки). Просто не подумал. :( Типа, сорри, если ишшо не поздно сменить взад - я уберу комментарии. Послать апдейт?
 
RU Kernel3 #06.08.2008 20:16  @Сергей-4030#06.08.2008 19:47
+
-
edit
 

Kernel3

аксакал

Сергей-4030> Товарищи комиссия, так запустилось или нет? :)
Сейчас попробую :) Яву только скачаю :F
Broken Windows® cures my ills and makes me feel alright... ©  
RU Kernel3 #06.08.2008 20:17  @Сергей-4030#06.08.2008 20:12
+
-
edit
 

Kernel3

аксакал

Сергей-4030> Кстати, блин, ишшо один баг обнаружил. Вернее, фичу. :( Совершенно автоматически встроил комментарии в язык ( /* */ комментарят содержимое, // комментарит до конца строки). Просто не подумал. :( Типа, сорри, если ишшо не поздно сменить взад - я уберу комментарии. Послать апдейт?
ИМХО, не надо :)
Broken Windows® cures my ills and makes me feel alright... ©  
US Сергей-4030 #06.08.2008 20:22
+
-
edit
 

Сергей-4030

исключающий третье
★★
Ишшо немного про производительность. Тест, приведенный ниже исполняется за 3.702 секунды. Аналог на обычной Java, приведенный еще ниже выполняется за 0.344 секунды. Получается, всего в 11 раз интерпретация медленнее! Если допустить, что на С++ этот код будет выполняться еще в три раза быстрее, чем мой на Java, то Реконструктору надо сделать, чтоб его интерпретатор работал не более чем в 30 раз медленнее, чем native код. Посмотрим-с...

code text
  1. {
  2.     begin=time();
  3.  
  4.     i=0;
  5.     while(i<1000000) {
  6.         a=random(20)-10;
  7.         c=random(20)-10;
  8.         b=random(20)-10;    
  9.         d=b^2-4*a*c;
  10.         if(d>0) {
  11.             d=sqrt(d);
  12.         };
  13.         i=i+1;
  14.     };
  15.  
  16.     end=time();
  17.     print(end-begin);
  18. }


code java
  1. package com.ssv.test.brainbench;
  2.  
  3. import java.util.Date;
  4.  
  5. public class Test2 {
  6.  
  7.         public static void main(String[] args) {
  8.             long begin=(new Date()).getTime();
  9.  
  10.             long i=0;
  11.             while(i<1000000) {
  12.                 double a=Math.random()*20-10;
  13.                 double c=Math.random()*20-10;
  14.                 double b=Math.random()*20-10;    
  15.                 double d=b*b-4*a*c;
  16.                 if(d>0) {
  17.                     d=Math.sqrt(d);
  18.                 };
  19.                 i=i+1;
  20.             };
  21.  
  22.             long end=(new Date()).getTime();
  23.             System.out.println(i);
  24.             System.out.println(end-begin);
  25.         }
  26.  
  27. }
 
US Сергей-4030 #06.08.2008 20:26  @Kernel3#06.08.2008 20:16
+
-
edit
 

Сергей-4030

исключающий третье
★★
Сергей-4030>> Товарищи комиссия, так запустилось или нет? :)
Kernel3> Сейчас попробую :) Яву только скачаю :F

OK! :) Тока не забудь - Java 1.5 и выше. Текущая (какая там - 6, билд №7?)- тоже сойдет.
 
RU Balancer #06.08.2008 20:32  @Сергей-4030#06.08.2008 20:08
+
-
edit
 

Balancer

администратор
★★★★★
Сергей-4030> Кстати, о переносимости. Зуб даю, что данные бинарники безо всяких проблем выполнятся на Линуксе.

Можешь мне выслать для проверки :)balancerbalancer.ru
 
US Сергей-4030 #06.08.2008 20:32  @Сергей-4030#06.08.2008 20:22
+
-
edit
 

Сергей-4030

исключающий третье
★★
Сергей-4030> Ишшо немного про производительность. Тест, приведенный ниже исполняется за 3.702 секунды. Аналог на обычной Java, приведенный еще ниже выполняется за 0.344 секунды. Получается, всего в 11 раз интерпретация медленнее! Если допустить, что на С++ этот код будет выполняться еще в три раза быстрее, чем мой на Java, то Реконструктору надо сделать, чтоб его интерпретатор работал не более чем в 30 раз медленнее, чем native код. Посмотрим-с...

И кстати, это при том, что я оптимизацией скорости выполнения ВААЩЕ не грузился. Ни на секунду. Шел по пути минимального сопротивления. ;) Типа, вот такая отстойная и медленная Java. ;)
 
US Сергей-4030 #06.08.2008 20:36  @Balancer#06.08.2008 20:32
+
-
edit
 

Сергей-4030

исключающий третье
★★
Сергей-4030>> Кстати, о переносимости. Зуб даю, что данные бинарники безо всяких проблем выполнятся на Линуксе.
Balancer> Можешь мне выслать для проверки :)balancerbalancer.ru

Давай, это будет интересно. Выслал!

ЗЫ Тисни результат, особенно если будет отрицательный. Честно говоря, никогда не пробовал эту штуку под Linux.

ЗЗЫ В принципе, наверное, облом таки возможен. Там есть чтение из файла и оно может быть малость системнозависимое... :(
 
US Сергей-4030 #06.08.2008 20:47  @Сергей-4030#06.08.2008 20:32
+
-
edit
 

Сергей-4030

исключающий третье
★★
Сергей-4030> И кстати, это при том, что я оптимизацией скорости выполнения ВААЩЕ не грузился. Ни на секунду. Шел по пути минимального сопротивления. ;) Типа, вот такая отстойная и медленная Java. ;)

Хотя скажем честно, конкретно для этой задачи C++ не многим хуже. Задача хорошо определенная, никаких посторонних требований. Пишется на раз хоть на Java хоть на C++.
 
+
-
edit
 

Kernel3

аксакал

Заработало, timetest выполнилась за 2.5 сек. ровно :)
Broken Windows® cures my ills and makes me feel alright... ©  
US Сергей-4030 #06.08.2008 21:01  @Kernel3#06.08.2008 20:57
+
-
edit
 

Сергей-4030

исключающий третье
★★
Kernel3> Заработало, timetest выполнилась за 2.5 сек. ровно :)

Хороший компьютер, значить. :) Как, когда комиссия предоставит выводы? После получения решения от Реконструктора? Или у комиссии ишшо будет свое тестирование и code review?
 
RU Kernel3 #06.08.2008 21:05  @Сергей-4030#06.08.2008 21:01
+
-
edit
 

Kernel3

аксакал

Сергей-4030> Как, когда комиссия предоставит выводы? После получения решения от Реконструктора?
Думаю, да :)
Сергей-4030> Или у комиссии ишшо будет свое тестирование и code review?
Эээээ... Предполагается, что баллы именно по результатам этого и будут ставить :)
Broken Windows® cures my ills and makes me feel alright... ©  
US Сергей-4030 #06.08.2008 21:12  @Kernel3#06.08.2008 21:05
+
-
edit
 

Сергей-4030

исключающий третье
★★
Сергей-4030>> Как, когда комиссия предоставит выводы? После получения решения от Реконструктора?
Kernel3> Думаю, да :)
Сергей-4030>> Или у комиссии ишшо будет свое тестирование и code review?
Kernel3> Эээээ... Предполагается, что баллы именно по результатам этого и будут ставить :)

OK. Кстати, а вот этот тест (ниже) у вас за скоко проходит? Графика медленная, блин, получилась совсем. :(

code text
  1. {
  2.         begin=time();
  3.  
  4.         i=0;
  5.         while(i<10000) {
  6.                 /* Random populating the circle area R=200. */
  7.                 r=random(200);
  8.                 if(random(10)>5)
  9.                         r=random(150);
  10.                 if(random(10)>5)
  11.                         r=random(100);
  12.                 if(random(10)>5)
  13.                         r=random(50);
  14.                 a=random(2*pi());                              
  15.                 x=sin(a)*r;
  16.                 y=cos(a)*r;
  17.                 c=random(10)*10000+random(10)*100+random(10);
  18.                 plot(x+400,y+250,c,i+400);
  19.                 i=i+1;
  20.         };
  21.  
  22.         end=time();
  23.         print(end-begin);
  24. }
 
1 2 3 4 5 6 7 13

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