برمجة compilateur

lala_ing

  • Full Member
  • ***
    • مشاركة: 133
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
في: كانون الثاني 23, 2009, 10:41:40 صباحاً
السلام عليكم ورحمة الله وبركاته
اشتقت لكم
لقد تبادرت لي فكرة وأردت أن أعرضها عليكم
 بما أنه معظم الطلبة يحتاجون لبرمجة compilateur وهي
مارأيكم في برمجة  compilateur مصغر بلغة c
وذلك يكون تقسيم العمل على 3 مراحل
1analyseur lexicale
2 analyseur syntaxique
3 analyseur sémantique

اذا اعجبتكم الفكرة لاتتأخروا بالردود وسأبدا
:cupidarrow::icon31::cupidarrow:


achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #1 في: كانون الثاني 23, 2009, 11:07:27 صباحاً
فكرة جيدة  ولكن قبل ذلك يجب تعريفهم بالcompilateur ماهو؟؟
فسنحاول تعريفهم به ثم نقوم ب
برمجة  compilateur مصغر بلغة c


نرمين*

  • Global Moderator
  • Hero Member
  • *****
    • مشاركة: 3989
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #2 في: كانون الثاني 23, 2009, 11:49:18 صباحاً
و الله فكرة رائعة اسرعو في تطبيقها
انا كدلك بحاجة اليه
بارك الله فيك و جزاك الف خير


شذى الروح

  • Hero Member
  • *****
    • مشاركة: 3501
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #3 في: كانون الثاني 23, 2009, 12:12:54 مسائاً
فكرة هايلة و يا ريت لو ننقلو الموضوع للنادي لانو تكون فيه الدردشة العلمية خلي كي يكمل الموضوع نشاله ننقلو باه يكون مفروز
نشاله يلقى هاذ العمل اقبال
مشكورة اختي على هذي الفكرة التي ننتظرها دائما من اعضائنا الكرام و اهلا بك مجددا معنا


lala_ing

  • Full Member
  • ***
    • مشاركة: 133
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #4 في: كانون الثاني 23, 2009, 05:11:57 مسائاً
شكرا لكم على ترحيبكم بالفكرة

Qu'est-ce qu'un compilateur ?

Compilateur = vérificateur et traducteur


Texte ------------->Compilateur------------------> Texte traduit

الذي يهمنا هو
vérificateur

Exemples
Texte en français -------------->Texte dont l'orthographe est corrigée
Texte en français -------------->Texte dont la grammaire est vérifiée
Programme en C --------------->Programme en assembleur
Programme en assembleur ----------->Programme en langage machine




شنفرى

  • Hero Member
  • *****
    • مشاركة: 2401
    • مشاهدة الملف الشخصي
    • http://www.google.com
    • البريد الالكتروني
رد #5 في: كانون الثاني 23, 2009, 05:42:52 مسائاً
جزاك الله على الموضوع المميز

iii_نفرى


lala_ing

  • Full Member
  • ***
    • مشاركة: 133
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #6 في: كانون الثاني 23, 2009, 09:16:32 مسائاً
السلام عليكم ورحمة الله وبركاته
نبدأ اليوم انشاء الله بـ
analyseur lexical du partie du pascal

outil utiliser

++DEv C

http://www.ingdz.com/vb/showthread.php?t=29106

1ouvrir bloc de note
2ecrire un petit programme pascal  
3enregistrer sous le répertoire ou vous êtes stocker votre projet
4ouvrir dev c++ c  
5ecrit le code suivant:


lala_ing

  • Full Member
  • ***
    • مشاركة: 133
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #7 في: كانون الثاني 23, 2009, 09:27:02 مسائاً
أهلا
kkkkkk
شفرة: [اختيار]
#include <cstdlib>
#include <iostream>
#includ<String.h>

using namespace std;
//les token
char tsep[]={';' , '(' , ')' , ',' , '[' , ']' , '{' , '}' , ':' }; //separateur
char top[]={'+' , '-' , '/' , '=' ,  '*'};//operateur
char* trw[]={&quot;begin&quot; , &quot;end&quot; , &quot;for&quot; , &quot;do&quot; , &quot;while&quot; , &quot;if&quot; , &quot;then&quot; , &quot;else&quot;};//mot resrever
char fichier[15];//le fichier analyser
FILE *fd;

int i;
//verifier si l'unite analyser est separateur
int is_sep(char x)
{    
    for( int i=0; i<10; i++) if( tsep[i] == x ) return i;
    return -1;
}
//verifier si l'unite analyser est operateur
int is_op(char y)
{
 for (int j=0; j<9; j++) if (top[j] == y) return j;
 return -1;
}
verifier si l'unite analyser est mot resrever
int is_rw(char* s)
{
    for (int d=0; d< 8; d++) if ( strcmp( trw[d],s ) == 0 ) return d;
    return -1;
}    

 
int main(int argc, char *argv[])
{
 int x;
 char sc;
 printf(&quot;donner le nom du fichier à compiler&quot;);
 scanf(&quot;%s&quot;,fichier);
 fd=fopen(fichier,&quot;r&quot;);
 if (fd==NULL)
     printf(&quot;fichier n'existe pas &quot;);
 else
     while(1)
     {
       x=fread(&sc,sizeof(char),1,fd);
       if(x<=0)break;
     
      if (sc==tsep[i]) then
      is_sep(sc);
      if (sc==top[i])
      is_op(sc);
     if else(sc==strcmp trw[i])
     
     
         
     }
    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
   
   
}
أرجو الإستفادة والإفادة للجميع لاتترددو ا في التطوير لهذا البرنامج




نرمين*

  • Global Moderator
  • Hero Member
  • *****
    • مشاركة: 3989
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #8 في: كانون الثاني 25, 2009, 10:21:06 مسائاً
جزاك الله الف خير


lala_ing

  • Full Member
  • ***
    • مشاركة: 133
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #9 في: شباط 05, 2009, 10:34:06 صباحاً
أين الردود

:no::sadwalk::no:


achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #10 في: شباط 05, 2009, 01:11:30 مسائاً
بارك الله فيك واصلي عملك الرائع................................تقبلي مروري


lucky girl

  • Hero Member
  • *****
    • مشاركة: 1151
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #11 في: شباط 05, 2009, 05:54:19 مسائاً
merciiiiiiiiiiiiiiiiiiiii