{"id":13781669,"url":"https://github.com/erickedji/pseudoccompilercollection","last_synced_at":"2025-05-11T15:31:56.966Z","repository":{"id":544002,"uuid":"173999","full_name":"erickedji/pseudoccompilercollection","owner":"erickedji","description":"Compiler and byte-code interpreter for a C-like langage (using LEX \u0026 YACC)","archived":false,"fork":false,"pushed_at":"2010-12-04T09:01:10.000Z","size":340,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-17T16:43:09.421Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://erickedji.wordpress.com/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/erickedji.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-04-12T10:19:20.000Z","updated_at":"2019-08-13T14:17:20.000Z","dependencies_parsed_at":"2022-07-07T14:17:50.379Z","dependency_job_id":null,"html_url":"https://github.com/erickedji/pseudoccompilercollection","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erickedji%2Fpseudoccompilercollection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erickedji%2Fpseudoccompilercollection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erickedji%2Fpseudoccompilercollection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erickedji%2Fpseudoccompilercollection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erickedji","download_url":"https://codeload.github.com/erickedji/pseudoccompilercollection/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253588576,"owners_count":21932280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T18:01:28.109Z","updated_at":"2025-05-11T15:31:56.513Z","avatar_url":"https://github.com/erickedji.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"\nPseudoC Compiler Collection.\nCompilateur et interprétateur de byte-code pour le PseudoC\n(un langage proche du C).\n\nKEDJI Komlan Akpédjé \u003ceric.kedji@gmail.com\u003e.\nhttp://erickedji.wordpress.com/\n\nArchitecture de PCC:\n===================\n\n    Un fichier source PseudoC passe à travers les étages\n    suivant avant l'exécution:\n\n    -\u003e Lexer (pc_lexer.c pc_lexer.lex pseudocl.c)\n    -\u003e Scanner \u0026 Compiler (pc_parser.y pc_symtable.c pseudocc.c)\n    -\u003e Intermediate Code (ic_generator.c ic_parser.c)\n    -\u003e Byte Code (bc_generator.c)\n    -\u003e Execution (interpreter.c pci_defs.c pseudoci.c)\n\nCompilation:\n===========\n    Un Makefile est inclus, il suffit de taper `make'\n    dans ce répertoire (utilisez `make clean' d'abord\n    pour supprimer les anciens exécutables et recompiler).\n\n    Le projet utilise BOEHM GC comme garbage collector\n    (à mettre dans le répertoire gc). Avant de taper\n    `make', rentrer dans le répertoire `gc' et taper:\n        $ ./configure; make\n    La dernière version de BOEHM GC est disponible ici:\n        http://www.hpl.hp.com/personal/Hans_Boehm/gc/\n\nExécution:\n=========\n    pseudocl: lit l'entrée standard et affiche sur la\n        sortie standard les tokens lus.\n\n    pseudocc: compile les fichiers passées en argument\n        (lit la sortie standard s'il n'y a pas\n        d'argument) en un fichier contenant le code\n        intermédiaire (`PseudoCIntermediateCode.s').\n\n    pseudoci: recoit en argument un fichier (lit l'entrée\n        standard sinon) contenant du code intermédaire,\n        génère du byte-code, et l'interprête.\n        Le byte-code généré est enregistré dans un fichier\n        nommmé `PseudoCBinary.pcb'.\n\nTests:\n=====\n    Dans le répertoire tests, le script `runall.sh'\n    exécute tous les tests sémantiques.\n\n    Pour exécuter les tests syntaxiques (`syntaxtest.sh'),\n    il faut disposer de DrScheme (http://www.drscheme.org/).\n\n\nRapport:\n=======\n    Le rapport est dans le fichier `rapport.pdf'.\n    Notez que pour le générer, vous avez besoin de `xelatex`.\n\nTodo:\n=====\n    - Meilleure intégration de BOEHM GC\n    - Traitement décent des arguments en ligne de commande\n    - Ne pas regénérer le byte code si le code source n'a\n      pas changé\n    - Finir le travail sur la table de symboles pour permettre\n      la compilation de plusieurs fichiers\n    - Optimiser le byte-code généré (peep-hole optimisation)\n\nLicence:\n=======\n    Le code est dans le domaine public, sauf les librairies tierces qui sont\n    sous licence GPL. Abusez-en comme vous voulez. Gardez tout simplement une\n    trace de l'auteur original.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferickedji%2Fpseudoccompilercollection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferickedji%2Fpseudoccompilercollection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferickedji%2Fpseudoccompilercollection/lists"}