Whitespace: call for input

6 views
Skip to first unread message

Sulaiman Mustafa

unread,
Jul 16, 2011, 2:33:52 PM7/16/11
to sigh-g...@googlegroups.com
بسم الله ارحمن الرحيم
____________________________________________________________________________________

الوصف القياسي للترميز بالفراغ (Whitespace encoded binary)
الإصدار الأول
تاريخ: 7-2011

الموقع: http://sigh.asia/playground/whitespace


:: مفردات

الوصف - الشروط و التعاليم الواردة في هذا المستند
البرنامج - البرنامج المراد كتابته


:: تفصيل لبعض الكلمات

يجب - توافق البرنامج مع هذا المتطلب إجباري ولا
خيار فيه، وعدم
التوافق يعني عدم ضمان عمل برنامجك بشكل صحيح مع البرامج
الأخرى.
يفضل - توافق البرنامج مع هذا المطلب اختياري الا ان
موافته مستحبة
ومرغوب بها.


:: مرادفات انجليزية

الترميز - encode
التسلسل ثنائي - binary stream
البايت - byte
البت - bit
إزاحة - Tab
مسافة - Space
واجهة الإدخال الإفتراضية - standerd input
واجهة الإخراج الإفتراضية - standerd output


:: رموز خاصة
[] - ما بين القوسين يؤخذ حرفياً

____________________________________________________________________________________


1. البرنامج يحب ان تكون لديه القدرة على ترميز التسلسلات الثنائية
وإعادتها لأصلها. يجب
على اي برنامج متوافق مع هذا الوصف ان يتيح للمستخدم ترميز اي تسلسل ثنائي بإستخدام
الرمزين:

أ. المسافة [ ] (0x20) للقيمة الثنائية صفر.
ب. إزاحة [ ] (0x09) للقيمة الثنائية واحد.

مراعيا النقاط التالية:

أ. ان يتم ترميز التسلسل بحسب الترتيب الذي يرد فيه، وأن تكون نقطة
البداية عند
الخانة الأقل وزناً. مثال:

تسلسل بتات الحرف "a" الإنجليزي (0x61) هو 1 0 0 0 0 1 1 0
(1 يرمز اولا).
عند اتمام عملية الترميز يجب ان تحصل على التالي.
[ ] (ثلاث إزاحات و خمس مسافات)

ب. ان لا يتم فرض حجم معين للتسلسل.


2. يجب ان تكون نواتج الترميز اما مسافات وإزاحات ولا شيء سواهما.


3. يجب ان يكون البرنامج قادرا على فك الترميز مراعيا النقاط التالية:

أ. ان يتجاهل البرنامج اي مدخل عدا الرمزان المذكوران في الفقرة رقم 1. مثال:

إذا فك ترميز العبارة التالية، يجب ان تحصل على الحرف "a".
لحظ ان الفراغ
بين الكلمتين جزئ من الترميز.
[ سر فلا كبا بك الفرس ] (ثلاث إزاحات و خمس مسافات)

4. يفضل ان يستقبل البرنامج المدخلات من واجهة الإدخال الإفتراضية ويرسل
النواتج عبر
واجهة الإخراج الإفتراضية.

____________________________________________________________________________________
ملاحظات:
- على الرغم من ان هذا المشروع بدأ عن مزاح، فإنني قررت كتابة هذا الوصف
كي تكون جميع
برامج المشاركين متوافقة.
- يرخص لك هذا المستند ضمن بنود رخصة BSD المشهورة (ثلاثة بتود).
- لإرسال ملاحضاتكم و إقتراحاتكم، يرجى مراسلت قائمة سايه آسيا حتا يتسنا
لنا مناقشتها
مع اكبر عدد من المشاركين: http://groups.google.com/group/sigh-general

Mohammed A. Mustafa

unread,
Jul 16, 2011, 2:59:52 PM7/16/11
to sigh-g...@googlegroups.com
Points to discuss:
-Input cannot be assumed to be a series of 8 bits (ascii). In case of
binary files, this is prone to fail. So data must be read as a stream.
-Decoding should give the exact data before encoding, in case of
binary files that are of size %8!=0, how can the last bits be put on
screen? Padding? But then the data wouldn't be exactly the same as
before encoding!

Sulaiman Mustafa

unread,
Jul 16, 2011, 3:34:58 PM7/16/11
to sigh-g...@googlegroups.com
- will change the specification to further emphasize on the fact that
data should be treated as binary blobs or streams and not characters
for both input and output.
Reply all
Reply to author
Forward
0 new messages