WinFuture-Forum.de: Shortest C Contest - WinFuture-Forum.de

Zum Inhalt wechseln

Beiträge in diesem Forum erhöhen euren Beitragszähler nicht.
  • 3 Seiten +
  • 1
  • 2
  • 3

Shortest C Contest


#1 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 25. Dezember 2004 - 01:43

https://ulm.ccc.de/s...21c7/index.html

Der 21. C7 (Chaos Communication Congress Compact C Coding Contest) ist angelaufen und mal wieder geht es darum einen Quellcode in C möglichst kompakt zu gestalten ohne die Funktionalität zu ändern. Leserlich muss das Ergebnis nicht mehr sein, es kommt nur darauf an möglichst wenige Bytes zu verwenden, das Ding muss aber trotzdem noch mit GCC 3.3.x im C99-Mode kompilieren sowie natürlich korrekt funktionieren.

Diesmal geht es um UUEncode im base64-Modus, der von stdin liest und nach stdout schreibt. Eine sehr kleine Beispielimplementierung ist bereits vorgegeben und sollte als Grundlage für's weitere Arbyten dienen.

Allgemeine Beispiele zum typischen Vorgehen bei solchen Aufgaben wurde in der Datenschleuder #82 vorgestellt, sollten aber soweit klar sein. Inlinen, Modifizieren von for-Schleifenparametern, Pre- und Post-Inkrements, Vereinfachen von Formeln, Verändern von Variablenbelegungen, ?: statt if-else, Verändern von Bedingungen, andere Kodierungen, Generieren von Sequenzen, Kürzungen oft verwendeter Konstrukte mit #define, Kürzungen von Variablennamen, Entfernen unnötigen Deklarationen und Zuweisungen und Kommentare sowie natürlich Löschen von Leerzeichen und Zeilenumbrüchen. Nicht notwendigerweise in dieser Reihenfolge.

Also ich hab den 1797 Byte großen Originalcode schon auf 417 Byte runtergestutzt (nein, ich poste es nicht, sonst macht mir noch jemand Konkurrenz). Und lesen kann man das so nicht mehr. Also dann, man sieht sich beim 21C3 (hoffentlich). Und immer schön den Schimmel im Auge behalten... äh, ich meine natürlich den Himmel. :)

Dieser Beitrag wurde von Rika bearbeitet: 25. Dezember 2004 - 15:29

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

Anzeige



#2 Mitglied ist offline   hans_maulwurf 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.358
  • Beigetreten: 23. Februar 04
  • Reputation: 0
  • Wohnort:Oberhausen

geschrieben 25. Dezember 2004 - 09:05

:) Na dann ich drück dir die Daumen ;) :)

#3 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 25. Dezember 2004 - 18:24

Juhu, 403 Byte! Die Codetabellen kann man komplett mit 1 Byte weniger selbst generieren, "unsigned char" muss auch nicht wirklich sein... ja sogar die zweite for-Schleife kollabiert komplett.

Und bedenkt man welche Spielereien ich eingebaut habe, dann habe ich im Zweifelsfalle noch gute Chancen auf einen Bonus-Preis für kranke Ideen.

Macht jemand von euch ebenfalls mit und hat mal ein paar Vergleichswerte?

Dieser Beitrag wurde von Rika bearbeitet: 25. Dezember 2004 - 18:51

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

#4 Mitglied ist offline   BlueDarknezz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 432
  • Beigetreten: 24. April 04
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 25. Dezember 2004 - 18:42

ich glaub damit werden dir hier nur wenige bis garkeine dienen können :D , da kann man nur den hut ziehen :angry: , ich wünsch dir ebenfalls viel glück

...aber den code auf 22,43% des ursprunges zusammenzufassen (mit gimmicks), dass ist nur noch wahnsinn :rolleyes:

Dieser Beitrag wurde von BlueDarknezz bearbeitet: 25. Dezember 2004 - 18:48


#5 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 25. Dezember 2004 - 18:54

Naja, der Teil des ursprünglichen Code enthält ja sowieso noch Kommentare, Klammern, Zeilenumbrüche Leerzeichen und lange Variablennamen sowie überflüssige Deklarationen. Stzutz man das alles weg so kommt man auf etwa 1002 Byte. Der Rest ist aber alles von simpel bis Meisterstück.

Dieser Beitrag wurde von Rika bearbeitet: 25. Dezember 2004 - 18:57

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

#6 Mitglied ist offline   mexxage 

  • Gruppe: aktive Mitglieder
  • Beiträge: 526
  • Beigetreten: 07. August 02
  • Reputation: 0
  • Wohnort:Magdeburg

geschrieben 25. Dezember 2004 - 18:58

Ich werde mich mal dran versuchen. Mal schauen wie "weit" ich komme.

#7 _FF1980_

  • Gruppe: Gäste

geschrieben 25. Dezember 2004 - 19:05

Naja, ich geb mich geschlagen..... 417 Bytes sind momentan das äußerste.....

#8 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 25. Dezember 2004 - 19:24

Ich bin auf 396 Bytes runter.
Aber 417 Bytes sind schon mal nicht schlecht... hast du überhaupt zwischendurch geprüft ob der Code nach genau das macht was er soll? Insbesondere daß er pberhaupt ohne Errors und Warnings kompiliert?

Dieser Beitrag wurde von Rika bearbeitet: 25. Dezember 2004 - 19:24

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

#9 _FF1980_

  • Gruppe: Gäste

geschrieben 25. Dezember 2004 - 19:35

Wenn ich unter 417 Byte gehe, sind einige Funktionen weg...... Naja, da ich ja nur Freizeit-Programmierer bin, bin ich schon einmal stolz auf mein Ergebnis. Da hast du sicherlich bessere Chancen.

#10 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 25. Dezember 2004 - 20:12

Auch Freizeitprogrammierer sollten die Regeln des Contests verstanden haben... 100%ige Korrektheit bezüglich der Spezifikation und 100%ig korrektes ANSI-C.

Edit: 379 Bytes

Dieser Beitrag wurde von Rika bearbeitet: 25. Dezember 2004 - 23:22

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

#11 Mitglied ist offline   Brutschi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 495
  • Beigetreten: 09. Oktober 04
  • Reputation: 4
  • Geschlecht:Männlich
  • Wohnort:Schönes Allgäu
  • Interessen:Computer, Seti@Home

geschrieben 30. Dezember 2004 - 20:45

@Rika

Und wie sieht das Ergebnis des Wettbewerbs aus?
Auf wieviel Byte bist du denn jetzt heruntergekommen?
Bist du unter den Top TEN?
Eingefügtes Bild
seit 09.09.2012 wieder richtige BOINC-STATS Signatur

#12 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 30. Dezember 2004 - 21:00

Zitat

Und wie sieht das Ergebnis des Wettbewerbs aus?
[...]
Bist du unter den Top TEN?

k.A.
Ich musste schon um 14.00 wieder los, per eMail kam nix und auf der Webseite ist auch noch nix.

Zitat

Auf wieviel Byte bist du denn jetzt heruntergekommen?

311. Vielleicht gingen noch weniger, aber ich hatte auf dem Congress voll den Stress.

#include <stdio.h>
int m,r,v,l,h,y;int main(int o,char* a[]){for(printf("begin-base64 644 %s\n",a[2]);h<6;){for(o=0;3-o++;h++){r<<=8;y=getchar();if(y+1)
{v+=4;r|=y&255;h--;}}l=l>14||(m&&h>2)?putchar(10)-9:l+1;
for(m=1;h<6&&o--;y=r>>6*o&63,putchar(v>0?y-
(y>61?y-63?19:16:y<52?y<26?-65:-71:4):61),v-=3);}return 0;}

Dieser Beitrag wurde von Rika bearbeitet: 30. Dezember 2004 - 21:18

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

#13 Mitglied ist offline   Brutschi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 495
  • Beigetreten: 09. Oktober 04
  • Reputation: 4
  • Geschlecht:Männlich
  • Wohnort:Schönes Allgäu
  • Interessen:Computer, Seti@Home

geschrieben 30. Dezember 2004 - 21:07

Aha!! Danke RIKA für die schnelle Antwort. :allesgute:

311 Byte das hört sich doch schon sehr gut an!
311 Byte das sind immerhin nur noch 17,3%, das ist doch krass!!!


Auf der Homepage konnte ich auch nix entdecken.
Eingefügtes Bild
seit 09.09.2012 wieder richtige BOINC-STATS Signatur

#14 Mitglied ist offline   Foxhound 

  • Gruppe: aktive Mitglieder
  • Beiträge: 366
  • Beigetreten: 29. November 04
  • Reputation: 0

geschrieben 30. Dezember 2004 - 21:18

Respekt Rika. Ich hab mal ne Frage. Woher kennst du dich in fast allen Gebieten so gut aus? Musst du sowas beruflich machen? Und nochmal ne Frage: Wie alt bist du und wie lange muss man für so was lernen?

Würd mich über ne antwort freuen.

Dieser Beitrag wurde von Foxhound bearbeitet: 30. Dezember 2004 - 21:18


#15 _BAstiL_

  • Gruppe: Gäste

geschrieben 30. Dezember 2004 - 21:23

Zitat (Foxhound: 30.12.2004, 21:18)

Respekt Rika. Ich hab mal ne Frage. Woher kennst du dich in fast allen Gebieten so gut aus? Musst du sowas beruflich machen? Und nochmal ne Frage: Wie alt bist du und wie lange muss man für so was lernen?

Würd mich über ne antwort freuen.
<{POST_SNAPBACK}>

Rika (=nie schlafende, EDV-Bücher fressende, künstliche Intelligenz)
Vorsicht sie werden assimiliert!

Thema verteilen:


  • 3 Seiten +
  • 1
  • 2
  • 3

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0