مترجم جملة zexpression + مترجم ، نواة محرك البرنامج النصي
شرح النظام الفني:
- في النظام الفني لمبدأ التجميع ، هناك حاجة إلى المعالجة المسبقة قبل معالجة التعليمات البرمجية النصية. إن بناء الجملة وسكر بناء الجملة الذي نتحدث عنه غالبًا كلها برامج معالجة مسبقة
- الطريقة المعجمية: الطريقة المعجمية هي تصنيف الكلمات الرئيسية والرقم والرموز ، وأخيراً تشكل شجرة معجمية ، واتبع بدقة مبدأ المعالجة المتسلسلة.
- بيان: في قانون المعالجة المسبقة ، يسمى جزء الإعلان شجرة الإعلان. تعتمد شجرة الإعلان أيضًا على المعالجة المسبقة المعجمية ، لأن المعالجة المسبقة المعجمية هي طريقة مبسطة.
- بناء الجملة: بعد المعالجة المسبقة للإعلان ، يقوم بمعالجة العمليات المنطقية لخط واحد لتعبيرات التعليمات البرمجية. وتسمى هذه الخطوة بناء الجملة. يتم أخذها كمترجم بناء الجملة zexpression. إنه حل قمت بتجريده عن عمد من المترجم الذي كتبته ذات مرة. يمكن توزيعها واستخدامها بشكل مستقل ، ويمكن استخدامها عملياً في المعالجة المسبقة الرقمية ، وصور الرسومات ، والحوسبة العلمية وغيرها من المجالات ، ويمكن استخدامها أيضًا كوسيلة لتعلم تحسين الذات.
فكرة أساسية
- يعتمد تنفيذ Zexpression مبدأ تعقيد نظير إلى نظير ويتم كتابته لحل مشاكل التحويل البرمجي. التعقيد أعلى بكثير من البرامج العادية. نظرًا لأنه يحل المشكلة النهائية ، فلا توجد نقاط ضعف في بنية التسمية والكومة للرمز ، لذلك فهو حل مترجم نحلي ناضج.
ميزات zexpression
- إكمال عملية تنقل خطوة واحدة
- إكمال أولوية الرمز الأولوية بعد المعالجة
- يمكن أن تعادل الأخطاء الحرفية والتعليقات حيث يحدث الخطأ
- طريقة كتابة الأرقام الطبيعية التي يمكن أن تحدد النقاط العائمة والأعداد الصحيحة
- الدعم استدعاء وظيفة
- دعم بناء جملة البرنامج النصي المخصص
- عكسي معالجة أولوية رمز بولندا 2.0
- يدعم نماذج Android و Apple للهواتف المحمولة
- إطار تقييم وظيفي كامل ، الأداء الكامل وتوضيح دقة إطار تقييم
- بعد التجميع ، يمكن تشكيل رمز المرجع الذاتي ، والذي يمكن تحميله وتشغيله بسرعة عالية من خلال الدفق دون تقييد نوع وحدة المعالجة المركزية
- يمكن فك تشفير إطار رمز OP بسهولة في رموز الجهاز لـ ARMV7 ARMX64 x64 x86 ومنصات أخرى
- دعم المصفوفة ودعم التعبير المتجه
دعم النظام الأساسي ، اختبار مع Delphi 10.3 Update 2 و FPC 3.0.4
- Windows: delphi-crosssocket (c/s ok) ، delphi-diocp (c/s ok) ، delphi-ics (c/s ok) ، delphi-indy (c/s ok) ، delphi+fpc sinapse (c/s ok)
- Android: Indy (C/S OK) ، CrossSocket (عميل فقط)
- جهاز iOS: Indy (C/S OK) ، CrossSocket (عميل فقط)
- iOS Simulaor: n/a
- OSX: Indy (C/S OK) ، ICS (لم يتم اختباره) ، CrossSocket (C/S OK)
- خادم Ubuntu16.04 X64: Indy (C/S OK) ، CrossSocket (C/S OK)
- Ubuntu18.04 x86+x64 سطح المكتب: فقط FPC3.0.4 SYNAPSE (C/S OK)
- ubuntu18.04 x86+x64 Server: فقط FPC3.0.4 SYNAPSE (C/S OK)
- Ubuntu18.04 ARM32+ARM Neon Server: فقط FPC3.0.4 SINAPSE (C/S OK)
- Ubuntu18.04 Arm32+Arm Neon Desktop: فقط FPC3.0.4 ترجمة موافق ، لا اختبار عند التشغيل.
- Ubuntu16.04 Mate Mate Arm32 سطح المكتب: فقط FPC3.0.4 ترجمة موافق ، تم تمرير الاختبار
- Raspberry PI 3 Debian Linux ARMV7 Desktop ، فقط FPC 3.0.4 ، تم اجتياز الاختبار.
- Wince (Arm Eatbi Hard Flat) ، Windows 10 IoT ، فقط FPC 3.3.1 ، مرت الاختبار.
دعم بنية وحدة المعالجة المركزية ، اختبار مع Delphi 10.3 Update 2 و FPC 3.0.4
- MIPS (FPC-LTTLE ENDIAN) ، تعويم ناعم ، اختبار تمريرة على QEMU
- Intel X86 (FPC-X86) ، تعويم ناعم
- Intel X86 (Delphi+FPC) ، تعويم صلب ، 80386 ، Pentium ، Pentium3 ، Pentium4 ، Pentiumm ، Corei ، Coreavx ، Coreavx2
- Intel X64 (FPC-X86_64) ، تعويم ناعم
- Intel X64 (Delphi+FPC) ، Hard Float ، Athlon64 ، Corei ، Coreavx ، Coreavx2
- ARM (FPC-ARM32-OEBI ، تعويم ناعم): ARMV3 ، ARMV4 ، ARMV4T ، ARMV5 ، ARMV5T ، ARMV5TE ، ARMV5TEJ
- ARM (FPC-ARM32-OEBI ، Hard Float): ARMV6 ، ARMV6K ، ARMV6T2 ، ARMV6Z ، ARMV6M ، ARMV7 ، ARMV7A ، ARMV7R ، ARMV7M ، ARMV7EM
- ARM (FPC-ARM64-OEBI ، Hard Float): ARMV8 ، AARCH64
تحديث سجل
2021-9-22
- تحتوي مكتبة NumberBase على برنامج تشغيل مضمن في zexpression. للحصول على تفاصيل ، يرجى الرجوع إلى خدمة متغير شبكة Zcloud https://github.com/passbyyou888/zcloud
- تم إصلاح المشكلة التي لم يتم تهيئة OpCache
- تحسين Opruntime
- دعم دلفي 11
- دعم FPC لأجهزة إنترنت الأشياء
2021-7
- مشاكل التعرف الثابتة مثل تعبير الأحرف -2.0e-3
- تم إصلاح مكتبة Opcode.pas بسبب حساسية الحالة وغير متوافقة مع Win/Linux
2020-3
- إضافة معلومات الإعلان إلى وظيفة التسجيل
- إصلاح رمز ما قبل الوظيفة -func (1+1)
- تم إصلاح الرمز FUNC (1+1) -1 بعد الوظيفة
2019-7
دعم تعبير المصفوفة
// 构建3*3的variant矩阵,使用c语法表达式
procedure MatrixExp ;
var
m: TExpressionValueMatrix;
begin
DoStatus( ' ' );
m := EvaluateExpressionMatrix( 3 , 3 ,
' "hello"+"-baby"/*备注:字符串联合*/,true,false, ' +
' 1+1,2+2,3+3, ' +
' 4*4,4*5,4*6 ' , tsC);
DoStatus(m);
end ;
// 构建variant向量数组,使用pascal语法表达式
procedure MatrixVec ;
var
v: TExpressionValueVector;
begin
DoStatus( ' ' );
v := EvaluateExpressionVector( ' 0.1*(0.1+max(0.15,0.11)){备注内容},1,2,3,4,5,6,7,8,9 ' , tsPascal);
DoStatus(v);
end ; 2019-4
- إصلاح الخلل بعد ترميز ملاحظات TextParsing
- يضيف OpCode نوع رد الاتصال (ارجع إلى دعم البرنامج النصي في Zai Toolchain)
2018-9-29
- التكنولوجيا الجديدة: تقنية مسبار النص المضافة: يمكن أن تقلل من تعقيد البرمجة لبرامج ANT بنسبة 50 ٪.
- التكنولوجيا الجديدة: أداء حرف كل شخص على حدة يحسن الأداء الذي يزحف
- متعدد المنصات: الدعم بالكامل لأنظمة إنترنت الأشياء المتعددة وأبنية للأجهزة متعددة المعالجات
- العرض التوضيحي الجديد: أضاف عرضًا جديدًا لـ FPC ، والذي لا يستخدم وظائف مجهولة المصدر
- العملية: متوافق مع دعم إنترنت الأشياء استنادًا إلى FPC: من الأساسي إلى التسمية المتقدمة والموحدة على نطاق واسع وتسمية. سيؤثر هذا التعديل على تفاصيل رمز العديد من المشاريع.
// 本项目中的回调分为3种
// call: 直接指针回调,fpc+delphi有效
// method: 方法回调,会继承一个方法宿主的地址,fpc+delphi有效
// proc: 匿名过程回调,只有delphi有效
// 如果本项调整对于改造现有工程有一定的工作量,请使用字符串批量处理工具
// 在任何有回调重载的地方,方法与函数,均需要在后缀曾加回调类型首字母说明
// 如
RunOp 变更为 RunOpP() // 后缀加P表示匿名类型回调
RunOp 变更为 RunOpM() // 后缀加M表示方法类型的回调
RunOp 变更为 RunOpC() // 后缀加C表示指针类型的回调
2018-7-6
- يصحح بشكل كبير قواعد التسمية للمكتبة الأساسية
- يدعم منصة FPC/86/64 ، وجميع المكتبات الأساسية تدعم التجميع الخالي من المتاعب والتشغيل تحت Linux.
- الدعم الكامل لمرجم FPC 3.1.1
- حجم إضافي ودعم إنديان
- تم إصلاح مسألة عدم رفض استخدام INT64 لمجمول FPC 32 بت
- تم إصلاح مشكلة الاستثناءات في الأوتار التي تعمل على Linux عند برنامج التحويل البرمجي FPC
- تمت إضافة أداة Pascal precompilation لتوحيد رمز Pascal في جميع الحالات الموحدة على غرار C ، والتي تتوافق تمامًا مع آلية أسماء الملفات الحساسة لحالة Linux
2018-4-12
- تم إصلاح خلل الذاكرة خارج الحدود في النواة: أعراض هذا الخطأ هو أنه لا يمكن الوصول إليه دون سبب ، ومن الصعب القضاء من خلال تصحيح الأخطاء العادية. هذا خطأ ناتج عن الذاكرة خارج الحدود.
2018-3-1
- تمت إضافة وظيفة مقارنة سلسلة غامضة (Smithwaterman) إلى kernel tpascalsstring ، يتم الانتهاء من التحسين والاختبار
- تنتمي هذه الخوارزمية إلى عنوان ويكيبيديا لـ Smith-Waterman ، وهو تخصص في الهندسة الوراثية البيولوجية. https://en.wikipedia.org/wiki/smith٪E2٪80٪93Waterman_Algorithm
2018-2-28
- Fix C Escape Character BUF ، بفضل AMU QQ345148965
- قم بتغيير تسمية المعلمة من charpos إلى التآكل وإضافة تعديل const
2018-2-26
- تم إصلاح مشكلة عدم القدرة على التجميع باستخدام وضع الإصدار
- تم إصلاح مشكلة القطع والتجزئة غير الصحيحة في zexpression
- تحسين بشكل طفيف أداء قطع تحقيقات الأحرف (Splittoken ، Splitchar)
- نظرًا لأن الطبقة الأساسية تعيد كتابة قفل ذري ، يتم إضافة المعدل المعبأ قبل العديد من إعلانات التسجيل
2018-2-25
- تمت إضافة دعم رمز التعبير المخصص
- عرض جديد لرموز التعبير المخصص
2018-2-25
- تم إصلاح المشكلة التي لا يمكن أن توسع معلمات الوظائف المتداخلة بشكل صحيح
- تم إصلاح المشكلة التي لا يمكن للمسبار الرقمي لمحرك التحليل التعرف على الأرقام والوظائف الطبيعية السداسية
- تمت إضافة مثال تجريبي جديد للتخصيص ، بما في ذلك الإعلان المتغير ، والضمادات الثابتة ، والتعدد الديناميكي ، وهو ما مجموعه ثلاثية. الرجاء دراستها بنفسك في مظاهرة مثال.
- تم إصلاح مسألة الاتحاد المتطابق للسلسلة والرقم
- يدعم نمط رمز C 0x16 من رقمين
2018-2-6
- أعد كتابة kernel parser مرة واحدة ، ويدعم مكالمات الوظائف ، ومن الآن فصاعدًا ، سيتم تحديث zexpression بشكل مستمر
إذا كانت لديك أي أسئلة حول استخدام Zexpression ، فيرجى إضافة Aid QQ Group 490269542 ، يرجى عدم الاتصال بالمؤلف مباشرة
by.qq600585 2017-6