{ "info": { "author": "aluriak", "author_email": "lucas.bourneuf@laposte.net", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License (GPL)", "Natural Language :: English", "Operating System :: Unix", "Programming Language :: Python :: 3", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Compilers", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Always Correct Correctness Compiler\nPython implementation of a very basic langage compiler that never throw errors while compiling. (almost) \nIts not a big and complex compiler, and its implementation is something like awful. \nSome links are given below.\n\n\n## Errors\nThe only errors releved by the compiler is :\n- source code contains characters not present in provided alphabet;\n- provided vocabulary don't follow conventions of writing;\n\nIf these conditions are respected, whatever you give to the __ACCC__, it will always return something valid.\n(but it can be an empty code)\n\n\n## Bias\nIf compiled source code is too short, or made of lots of repetitions, \nsome bias can appear: \n- always same values in object code \n- lots of neutral values \n\nThe bigger is the vocabulary and bigger is the list of lexems, \nthe less bias will appear.\n\n\n## Interests\nA compilable source code is a string of characters. \nValid characters are provided at Compiler instanciation. \n\nFor example, if you have the alphabet *'01'*, \nany string exclusively composed of *'0'* and *'1'* is compilable and will produce something. \n\nAny little modification of the string can lead to heavy or no modification of object code. \nIn fact, with ACCC you can generate mutation of a source code without problem of compilation error. \n\nWrite a code with lots of parameters is another way to do almost the same thing.\n\n\n## Object code\nCurrently, current object langage is __very simple__: you can compare things, and do things.\nThat's all. No loops, variables, functions, objects,\u2026 Just conditions and actions.\n\nThis is an example of code, not totally illogic, created one time with a source code size of 60 and the alphabet '01': \n(indentation can miss) \n\n if parameter1 == parameter2 and haveThat:\n do_that\n if have_that:\n say_this\n do_that\n if know_that and have_many_things:\n do_that\n say_this\n do_that\n if have_many_things:\n say_this\n\nPlease have a look to docstring of *Compiler* class for more details about that. (notabily used vocabulary) \n\n\n## I/O speaking\nInputs:\n- iterable of characters (doublons are unexpected) that compose the source code \n- vocabulary used for compiling \n\nOutputs: \n- a python compilable code, according to vocabulary \n\n\n## Next improvements\nIn random-priority order: \n- [ ] allow lexems to have arguments; \n- [ ] create before convert in any langage; \n- [ ] allow configuration of output langage; \n- [ ] unit tests; \n- [ ] usage example; \n- [ ] base tables on source code instead of only vocabulary; \n- [X] upload on pypi and github (see links below); \n\n\n\n## Why don't you use\u2026\nSomeone do the same thing ? Or better ? \nGive me the link, i want to see that !\n\n\n## Why do that ?\n1. It's fun\n2. I need it for test something in another project (an Evolution simulation named [EvolAcc](http://www.github.com/Aluriak/EvolAcc) ; no surprise)\n\n\n## Links\n- ACCC on [github](http://www.github.com/Aluriak/ACCC); \n- ACCC on [pypi](https://pypi.python.org/pypi/ACCC);", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Aluriak/ACCC", "keywords": "compilation compiler correctness", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "ACCC", "package_url": "https://pypi.org/project/ACCC/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ACCC/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/Aluriak/ACCC" }, "release_url": "https://pypi.org/project/ACCC/0.0.3/", "requires_dist": null, "requires_python": null, "summary": "Always Correct Correctness Compilator", "version": "0.0.3" }, "last_serial": 1451087, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3858e2b6895eb127823d68e920d38c65", "sha256": "5b96439eeda83190aa5c907c935d0a68febbdc181e82234613daa0d1c7355b8b" }, "downloads": -1, "filename": "ACCC-0.0.1.tar.gz", "has_sig": false, "md5_digest": "3858e2b6895eb127823d68e920d38c65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18646, "upload_time": "2015-02-26T18:38:05", "url": "https://files.pythonhosted.org/packages/ed/83/df27f35e65438a7fe72ead277d567ebc89b729a939aeedc421b29873b537/ACCC-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "27ecbdb65d43419647adcfeafb0b27f8", "sha256": "189ec451b23b49be3a39126231b7a564745b4e777d0bd868d285ce8a64c3c676" }, "downloads": -1, "filename": "ACCC-0.0.2.tar.gz", "has_sig": false, "md5_digest": "27ecbdb65d43419647adcfeafb0b27f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19152, "upload_time": "2015-02-26T18:48:22", "url": "https://files.pythonhosted.org/packages/c6/fd/39416a118faef772ecb52eb985f78e80a117304a2640e21f7c314c23f4a7/ACCC-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "ed69ad16d64c773ef04c253f2fb727b0", "sha256": "8411dccc8d61f3b0d0538acea7c9bac12135f9cae48f0ffc20d3784bb70c756d" }, "downloads": -1, "filename": "ACCC-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ed69ad16d64c773ef04c253f2fb727b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30185, "upload_time": "2015-03-06T17:31:32", "url": "https://files.pythonhosted.org/packages/5a/a8/30c129835b0228b5894e7c1c836b860f41fa01b6721cbdf9b7153b18b7cf/ACCC-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ed69ad16d64c773ef04c253f2fb727b0", "sha256": "8411dccc8d61f3b0d0538acea7c9bac12135f9cae48f0ffc20d3784bb70c756d" }, "downloads": -1, "filename": "ACCC-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ed69ad16d64c773ef04c253f2fb727b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30185, "upload_time": "2015-03-06T17:31:32", "url": "https://files.pythonhosted.org/packages/5a/a8/30c129835b0228b5894e7c1c836b860f41fa01b6721cbdf9b7153b18b7cf/ACCC-0.0.3.tar.gz" } ] }