Cpp2C

این کامپایلر، کلاسهای ساخته شده در C++ را طی چند Pass به ساختارهای معادل آنها (شامل متدها، سازنده‌ها، مخربها و …) در C تبدیل مینماید. Pass های اجرایی در این کامپایلر به عبارت زیر هستند:

1- پیش پردازش Preprocess:

قالب برنامه ورودی را به شکلی مناسب اصلاح مینماید. مثلا حذف فاصله‌های اضافی و خطوط خالی و قرار دادن هر دستور در یک خط مجزا.

2- تجزیه Parse:

با برسی برنامه، Token ها را تشخیص داده و جدول نمادها (Symbol Table) را تشکیل میدهد. همچنین انواع داده‌ای جدید معرفی شده در برنامه، به Data type های پیشفرض، جهت استفاده، اضافه میگردند.

3- ترجمه Translate:

با استفاده از جدول نمادها، برنامه را خط به خط ترجمه مینماید.

بدیهیست که این برنامه، فقط یک نمونه آموزشی و آزمایشی بوده و توانایی ترجمه انواع دستورات، اعلانها و سرآیندهای متفاوت موجود در Cpp را ندارد.

A high level C++ classes to c structs compiler. This program converts C++ classes to C structs, and has some limitations.

Features and limitations:

1. Multiple variable declaretion is illegal

Ex:

Legal: int a; int b; int c; Illegal: int a,b,c;

2. IF and THEN forward is illegal:

Ex:

Legal: if (num2==6) Illegal: if (num2==6) printf(“Its true!”);

printf(“Its true!”);

3. Int, float, void, class and struct datatypes are supported

4. Refference variable not supported

5. Only one default parameter is supported, no more

6. This is a symbolic translator and produced for educational project, so has bugs and limitations

Persian post in my blog, about Cpp2C

Download CPP2C

Screenshots:

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


5 × = 20