1. Си / Говнокод #20021

    −44

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    В виде говнокода не было, вроде, но в комментариях упоминали. 
    Исходники языка J. Код на Си, слабонервным просьба не смотреть.
    https://github.com/search?l=c&q=org%3Ajsoftware+&ref=searchresults&type=Code&utf8=%E2%9C%93
    На плюсах иногда более менее вменяемые вещи можно увидеть.
    https://github.com/search?l=cpp&q=org%3Ajsoftware+&ref=searchresults&type=Code&utf8=%E2%9C%93

    Есть подозрение, что они исходники тупо пропустили через обфускатор, и выложили на гитхаб. Поводы - страшные названия переменных, очень полезные комментарии местами, вменяемый код местами опять же.

    Запостил: Zuzik, 16 Мая 2016

    Комментарии (7) RSS

    • > пропустили через обфускатор
      А оно, случаем, не сгенерено кодом на J из кода на J?
      Ответить
    • https://github.com/jsoftware/jsource/blob/master/jlibrary/system/main/socket.ijs
      Ответить
    • А в отдельные посты говнокод нельзя оформлять? Желательно с пояснениями для тупых.
      А то что-то лень по ссыле искать говно в куче навоза...
      Это как новый конструктор: собери говно сам.
      Ответить
      • Похоже там прекрасно всё

        F1(jtsympool){A aa,*pu,q,x,y,*yv,z,*zv;I i,j,n,*u,*v,*xv;L*pv;
         RZ(w); 
         ASSERT(1==AR(w),EVRANK); 
         ASSERT(!AN(w),EVLENGTH);
         GA(z,BOX,3,1,0); zv=AAV(z);
         n=*AS(jt->symp); pv=jt->sympv;
         GA(x,INT,n*6,2,0); *AS(x)=n; *(1+AS(x))=6; xv= AV(x); zv[0]=x;
         GA(y,BOX,n,  1,0);                         yv=AAV(y); zv[1]=y;
         for(i=0;i<n;++i,++pv){         /* per pool entry       */
          *xv++=i;
          *xv++=(q=pv->val)?AT(pv->val):0;
          *xv++=pv->flag;
          *xv++=pv->sn;
          *xv++=pv->next;
          *xv++=pv->prev;
          RZ(*yv++=(q=pv->name)?sfn(1,q):mtv);
         }
         GA(y,BOX,n,1,0); yv=AAV(y); zv[2]=y;
         DO(n, yv[i]=mtv;);
         n=AN(jt->stloc); v=AV(jt->stloc); 
         for(i=0;i<n;++i)if(j=v[i]){    /* per named locales    */
          x=(j+jt->sympv)->val; 
          RZ(yv[j]=yv[*AV(x)]=aa=sfn(1,LOCNAME(x)));
          RZ(q=sympoola(x)); u=AV(q); DO(AN(q), yv[u[i]]=aa;);
         }
         n=AN(jt->stptr); pu=AAV(jt->stptr);
         for(i=0;i<n;++i)if(x=pu[i]){   /* per numbered locales */
          RZ(      yv[*AV(x)]=aa=sfn(1,LOCNAME(x)));
          RZ(q=sympoola(x)); u=AV(q); DO(AN(q), yv[u[i]]=aa;);
         }
         if(x=jt->local){               /* per local table      */
          RZ(      yv[*AV(x)]=aa=cstr("**local**"));
          RZ(q=sympoola(x)); u=AV(q); DO(AN(q), yv[u[i]]=aa;);
         }
         R z;
        }    /* 18!:31 symbol pool */


        - всратый стиль написания
        - говномакросы эвривеа
        - понятные имена
        - один из разработчиков какой-то Хуй
        Ответить
        • ты просто завидуешь, потому что ты не можешь написать аж целый яп из таких говносорцов
          Ответить
    • Боюсь, что они так мыслят. Ибо даже имена файлов так же обфусцированы.
      Ответить
    • имо это студенты-олимпиадники пишут идеальный яп для студентов-олимпиадников
      Ответить

    Добавить комментарий