الأخبار

الأسُس Alusus: Work on Version 0.4.0 Close to Completion

تم اضافته من قبل سرمد خالد عبداللّه منذ 8 أيام

The team is adding the final touches to version 0.4.0 of Alusus Language. This version adds many new features, but some features that were planned to be part of this release were postponed to the next release in favor of other features that turned out to be more important. The highlights of this release are:

  • Added support for macros which allow the programmer to put a group of commands into a macro that can then be reused elsewhere. This feature is conceptuatlly similar to C macros, but its implementation is different. While macros in C are executed as a preprocessor working on characters, in Alusus macros are part of the parsing process, which leads to the following differences:
    - In Alusus macros are limited to the scope in which they are defined unlike C macros which can't be scoped. In other words, if you define a macro in Alusus within a certain scope (a module for example) then tried to use it outside of that scope the compiler will error out unless you mention the full path leading to that macro.
    - In Alusus you can define multiple macros with the same name if they are defined in different scopes. In C you can't do that.
    - In Alusus parsing errors inside macros are detected during the parsing of the macro itself, whereas in C parsing errors won't be detected until the macro is used somewhere.
    - In Alusus you can't define macros containing partial commands or partial rules like you can in C.
  • Added the command `use` which allows the programmer to tell the compiler to search for identifiers within a certain scope by default. For example, instead of having to mention `Srl.Console.print` multiple times, the user can type `use Srl.Console` and then elsewhere only type `print`.
  • Added support for constant definitions, which allow the user to give a name to a certain constant value. For example: `def PI: 3.141592`.
  • Allow the definition of global vars and functions inside the bodies of user types. This is similar to the use of `static` keyword in C++ class members.
  • Added an experimental GUI library based on GTK. This is still expecimental and it only includes a small subset of GTK, but the user can easily add any missing parts. The included elements are windows, header bars, message dialogs, buttons, toggle buttons, checkboxes, menus, entry fields as well as images. If the user needs anything outside of this it can be added by simply definining the needed functions. The user can refer to Alusus GTK library to know how it's done.

This is in addition to many bug fixes and other smaller changes. This version is expected to be released this month.

الأسُس Alusus: الاستعداد لإطلاق الإصدار 0.4.0 من لغة الأسس

تم اضافته من قبل سرمد خالد عبداللّه منذ 8 أيام

يستعد فريق عمل لغة الأسس لإطلاق الإصدار 0.4.0 الذي يضيف العديد من الخاصيات الجديدة للغة الأسُس. بعض الخاصيات التي كان مخططاً لها أن تكون ضمن هذا الإصدار قد أجلت إلى الإصدار القادم لمصلحة خاصيات أخرى اتضح أنها أكثر إلحاحًا وإضيفت إلى هذا الإصدار. أهم الخاصيات ضمن هذا الإصدار:

  • إضافة خاصية الماكروهات التي تتيح للمبرمج وضع مجموعة من الأوامر في ماكرو لتسهيل تكرارها في أماكن متعددة. هذه الخاصية مشابهة لخاصية الماكرو في لغة السي من ناحية المبدأ لكنها تختلف اختلافاً جذرياً في التصميم، حيث أن الماكرو في لغة السي يعالَج نصياً في مرحلة تسبق الإعراب بينما ماكرو الأسُس يعمل كجزء من مرحة الإعراب نفسها وهذا يؤدي إلى الفروقات التالية:
    - في لغة الأسُس الماكرو تأثيره محدود ضمن مجال تعريفه بعكس الماكر في لغة السي حيث يكون غير محدود بأي مجال. بمعنى آخر، في لغة الأسُس إذا عرفت ماكرو داخل مجال معين وحاولت استخدامه داخل مجال آخر فسيمنعك المترجم من ذلك ما لم تذكر المسار الكامل المؤدي لذلك الماكرو.
    - يمكن في لغة الأسُس تعريف عدة ماكروهات بنفس الاسم طالما أنها معرفة ضمن مجالات مختلفة، وهذا غير ممكن في لغة السي.
    - في لغة الأسُس الأخطاء الإعرابية داخل الماكرو يتم استشعارها مباشرة بعكس لغة السي حيث لا تُستشعر الأخطاء الإعرابية إلا بعد انتهاء معالجة الماكرو والبدء بمرحلة الإعراب.
    - في لغة الأسُس لا يمكن تعريف ماكرو يحتوي متنه على أجزاء غير مكتملة من القواعد بعكس لغة السي التي تتيح ذلك. مثلاً، في لغة السي يمكن تعريف ماكرو يحتوي على جزء غير مكتمل من القواعد ويقوم المستخدم يتجميع ماكروهات متعددة للحصول على برنامج صحيح قواعدياً وهذا الأمر غير ممكن في لغة الأسس التي تمنع أن يكون متن أي ماكرو غير مكتمل قواعدياً.
  • إضافة الأمر `استخدم` (use) الذي يُخبر المترجم بالبحث عن الرموز تلقائياً داخل مجالات معينة بدل اضطرار المبرمج لكتابة المسار الكامل عند استخدام العناصر. على سبيل المثال، بدل أن يكتب المستخدم `مـتم.طـرفية.اطبع` بشكل متكرر يمكنه استخدام الأمر `استخدم مـتم.طـرفية` وبعدها الاكتفاء بكتابة `اطبع`.
  • إضافة الدعم للثوابت. أي يمكن للمبرمج ان يعطي اسماً لقيمة ثابتة (رقم أو سلسلة محارف) ثم استخدام ذلك الإسم لاحقاً بدل كتابة القيمة الثابتة. مثال: `عرف النسبة_الثابتة: 3.141592`.
  • تمكين تعريف المتغيرات والدالات العمومية داخل أصناف المستخدم. هذه تقابل تعريف الدالات والمتغيرات داخل الأصناف باستخدام المبدل static في لغة السي++.
  • إضافة مكتبة تجريبية لواجهة المستخدم مبنية على أدوات جتك (GTK). هذه المكتبة تجريبية فقط وتشمل فقط جزءًا بسيطاً من مكتبة جتك، ولكن بإمكان المستخدم إضافة ما ينقصه بسهولة. المكتبة توفر دعماً للنوافذ والنوافذ الحوارية والأزرار والقوائم وقوائم الأوامر وحقل الإدخال وشريط الحاشية بالإضافة إلى الصور. إذا احتاج المستخدم إلى عناصر غير متوفرة فكل ما يحتاجه إضافة تعريف للدالات المعنية ويمكن مراجعة مكتبة الأسس الخاصة بجتك لمعرفة كيفية فعلها.

هذا بالإضافة إلى عدد من الإصلاحات والتغييرات الثانوية الأخرى. الفريق الآن يضع اللمسات النهائية لهذا الإصدار الذي يُتوقع إصداره هذا الشهر بإذن الله.

الأسُس Alusus: Work on Version 0.4.0 Starting Soon

تم اضافته من قبل سرمد خالد عبداللّه منذ 4 أشهر

Work on the next release of Alusus language, which is 0.4.0, is set to start soon. This will be the start of a new pattern in releases in which releases are more frequent with less changes. The next release will focus on the following:

  • Provide support for macros.
  • Implement the command `use` that allows the elements of one namespace to be reachable directly from another namespace.
  • Provide support for building executables, in addition to the JIT compilation that is available now.
  • Provide a module for dealing with GTK to enable the user to write GUI applications.
  • Provie a simpel IDE.

No date is set yet for this release. Release date will be announced later.

الأسُس Alusus: بدء العمل على الإصدار 0.4.0

تم اضافته من قبل سرمد خالد عبداللّه منذ 4 أشهر

العمل على الإصدار القادم من لغة الأسُس، وهو الإصدار 0.4.0، سيبدأ قريباً، وسيكون هذا الإصدار بإذن الله بداية لنمط جديد من الإصدارات يعتمد على إصدارات متقاربة بتغييرات أصغر من تلك اللتي في الإصدار 0.3.0. الإصدار القادم سيركز على توفير ما يلي:

  • توفير الدعم للماكروهات (macros)، وهي عناصر يكتب فيها المبرمج مجموعة من العناصر ليسهل إعادة استخدامها.
  • إنشاء الأمر `استخدم` (use) الذي يمكن المستخدم من توفير عناصر مجال معين داخل مجال آخر.
  • تمكين إنشاء ملفات تنفيذية إلى جانب الترجمة الآنية المتوفرة حالياً.
  • إنشاء حزمة للتعامل مع GTK لتمكين المستخدم من بناء واجهات مستخدم.
  • إنشاء بيئة تطوير بسيطة (IDE).

لم يُحدد بعد موعد إطلاق الإصدار، وسنعلن عن ذلك في وقت لاحق. يُمكن متاعبة سير العمل من صفحة ردماين الخاصة بهذا الإصدار: https://redmine.alusus.org/versions/10

الأسُس Alusus: Version 0.3.0 Released

تم اضافته من قبل سرمد خالد عبداللّه منذ 5 أشهر

Version 0.3.0 of Alusus Language has been released and is available to download. This version comes with major refactoring in the Core and standard libraries intended to make future work on the language easier and more streamlined. In addition to the refactoring, this release comes with the following new features:

  • Complete set of basic data types matching what is provided by the C language.
  • New program control commands: `continue` and `break` in loops, in addition to the `else` clause in if statements.
  • Many improvements to expressions.
  • Support for function pointers.
  • Support for pointer comparisons in addition to casting between pointers and integers.
  • Treating modules as proper namespaces.
  • Ability to merge module and type definitions, allowing those modules or types to be split across multiple source files.
  • Run-time library that provides functions for system, memory, string, file, math, in addition to user input/output operations.
  • Improvements to implicit casting.
  • Support for defining modifiers in the grammar.
  • Improved build notifications.

In addition to this, many other fixes and smaller improvements are included. Visit the Downloads page to get the new release or to read the release notes.

الأسُس Alusus: إطلاق الإصدار 0.3.0

تم اضافته من قبل سرمد خالد عبداللّه منذ 5 أشهر

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

  • أصناف أساسية أكثر تكاملاً توازي ما تقدمه لغة C.
  • أوامر تحكم جديدة: `أكمل` و `اقطع` في الحلقات، بالإضافة للمقطع `وإلا` في الجمل الشرطية.
  • تطوير التراكيب وجعلها أكثر تكاملاً.
  • دعم مؤشرات الدالات.
  • تمكين المقارنات على المؤشرات وتمكين تحويل المؤشرات إلى أعداد صحيحة والعكس.
  • معاملة الحزم كمجالات تسمية (namespace).
  • إمكانية دمج تعريفات الحزم وأصناف المستخدم مما يمكن من تجزئة الحزم إلى عدة ملفات مصدرية.
  • إضافة مكتبة تنفيذية توفر دالات للتعامل مع النظام والطرفية وسلاسل المحارف والذاكرة والملفات والعمليات الرياضية.
  • تحسينات لعملية التمثيل الضمني (implicit casting).
  • دعم إمكانية تعريف المبدلات في القواعد.
  • تحسين إشعارات البناء.
  • دعم أفضل للغة العربية.

هذا بالإضافة إلى العديد من الإصلاحات الأخرى. راجع صفحة التنزيل للحصول على الإصدار الجديد أو للاطلاع على ملاحظات الإصدار.

الأسُس Alusus: Work on Version 0.3 Complete

تم اضافته من قبل سرمد خالد عبداللّه منذ 5 أشهر

Work on the new version of Alusus Language, version 0.3, has been complete and the team is getting ready to release it soon. The new release contains major refactoring to the source code that makes future work on Alusus much simpler, whether it's work done by Alusus core team or by external devs. In addition to the refactoring this release includes many new features and fixes that enables Alusus to be used for more than just simple examples. Among the new features:
  • More complete set of basic data types.
  • New program control commands.
  • Many improvements to expressions.
  • Support for function pointers.
  • Support for proper namespaces.
  • Run-time library that provides functions for system, memory, strings, file, and math operations.

That is in addition to many other fixes and improvements. The new release is coming within the coming couple of weeks.

الأسُس Alusus: انتهاء العمل على الإصدار 0.3

تم اضافته من قبل سرمد خالد عبداللّه منذ 5 أشهر

اكتمل العمل على الإصدار 0.3 من لغة الأسُس وسيتم إطلاقه في القريب العاجل بإذن الله. الإصدار 0.3 إصدار مهم لاشتماله على تعديلات جذرية في الشفرة المصدرية تبسطها كثيراً وتقلل مراحل الترجمة بإزالة مرحلة وسطية غير ضرورية. التعديلات الجديدة ستسرع العمل على لغة الأسُس وستسهل إضافة خاصيات جديدة سواء من قبل فريق العمل نفسه أو من قبل أطراف أخرى. بالإضافة لهذه التعديلات فإن الإصدار 0.3 يضيف خاصيات عديدة ويصحح الكثير من العلل ما يمكن المستخدمين من كتابة برامج بالأسُس أكثر من مجرد أمثلة بسيطة. من بين الخاصيات الجديدة التي يوفرها الإصدار الجديد ما يلي:
  • اصناف أساسية أكثر تكاملاً.
  • أوامر تحكم جديدة.
  • تطوير التراكيب وجعلها أكثر تكاملاً.
  • دعم مؤشرات الدالات.
  • دعم مجالات التسميات.
  • مكتبة تنفيذية تحتوي دالات للتعامل مع النظام والطرفية وسلاسل المحارف والذاكرة والملفات والعمليات الرياضية.

هذا بالإضافة إلى عدد كبير من التعديلات والتصحيحات. سيتم إطلاق الإصدار هذا الشهر، محرم 1440هـ بإذن الله.

الأسُس Alusus: Work on Version 0.3 Getting Closer to Completion

تم اضافته من قبل سرمد خالد عبداللّه منذ 11 أشهر

Alusus development team is getting closer to finishing the work on version 0.3. Despite not many user facing changes relative to the size of work, this release is actually big. It includes a re-write of the standard generation library as well as a rewrite of parts of the Core. The standard generation library is getting a totally new design that aims to simplify the code and pave the road for faster development and adding more advanced features. The new code base will be simpler to understand and will also result in a more solid release with less bugs.

In addition to the new design, the new release will also contain new language features aiming to bring the language closer to feature parity with C, which should enable writing fully functional applications similar to what C enables. The full list of modifications and new features will be announced later in a separate article.

Version 0.3 is expected to be released in summer. The exact release date will be announced later.

الأسُس Alusus: اقتراب انتهاء العمل على الإصدار 0.3

تم اضافته من قبل سرمد خالد عبداللّه منذ 11 أشهر

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

بالإضافة إلى تعديل التصميم، فإن الإصدار 0.3 سيضيف خواص جدية وتعديلات مهمة ستقرب لغة الأسس من مماثلة لغة C من حيث الخواص، ما يجعلها قادرة على بناء برامج كالتي تمكّنها لغة C. قائمة التعديلات الكاملة ستذكر لاحقاً في مقال منفصل.

يتوقع إطلاق الإصدار خلال الصيف القادم، وسيتم الإعلان عن الموعد بالتحديد في وقت لاحق.

1 2 القادم »

متوفرة أيضا في: Atom