{"id":18850057,"url":"https://github.com/kaoutherbo/monty","last_synced_at":"2025-04-14T09:21:18.560Z","repository":{"id":217873509,"uuid":"744991991","full_name":"Kaoutherbo/monty","owner":"Kaoutherbo","description":"Stacks, Queues - LIFO, FIFO project","archived":false,"fork":false,"pushed_at":"2024-01-20T23:22:01.000Z","size":46,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T22:42:47.607Z","etag":null,"topics":["alx-challenge","c","cmdline","fifo-queue","lifo-stack","queue","stuck"],"latest_commit_sha":null,"homepage":"","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/Kaoutherbo.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-18T12:27:08.000Z","updated_at":"2024-01-24T20:54:57.000Z","dependencies_parsed_at":"2024-01-18T16:08:23.584Z","dependency_job_id":"2fcb348a-45bb-4277-86d7-13cd23e430e4","html_url":"https://github.com/Kaoutherbo/monty","commit_stats":null,"previous_names":["kaoutherbo/monty"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kaoutherbo%2Fmonty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kaoutherbo%2Fmonty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kaoutherbo%2Fmonty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kaoutherbo%2Fmonty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kaoutherbo","download_url":"https://codeload.github.com/Kaoutherbo/monty/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248852186,"owners_count":21171843,"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":["alx-challenge","c","cmdline","fifo-queue","lifo-stack","queue","stuck"],"created_at":"2024-11-08T03:27:31.565Z","updated_at":"2025-04-14T09:21:18.529Z","avatar_url":"https://github.com/Kaoutherbo.png","language":"C","readme":"# Stacks, Queues - LIFO, FIFO:\n## Stuck\nIn software development, `stuck` refers to issues or tasks that are currently blocked or facing obstacles. \n\n## Queue\nThe `queue` section outlines the tasks that are lined up for future development. \n\n\u003cimg src=\"https://techvidvan.com/tutorials/wp-content/uploads/sites/2/2021/07/Insertion-in-Stack.jpg\" alt = \"stuck\"/\u003e\n\u003cimg src=\"https://techvidvan.com/tutorials/wp-content/uploads/sites/2/2021/07/Inserting-an-element-into-the-queue.jpg\" alt = \"queue\" /\u003e\n\n#  The Monty language: \nMonty 0.98 is a scripting language that is first compiled into Monty byte codes (Just like Python). It relies on a unique stack, with specific instructions to manipulate it. The goal of this project is to create an interpreter for Monty ByteCodes files.\n\n# Usage:\nTo use the Monty Byte Code Interpreter, follow these instructions:\n```\n$ monty file\nWhere file is the path to the file containing Monty byte code.\n```\n## Tasks:\n## Mendatory tasks:\n| Task                         | File                                        | Description                                           |\n| ---------------------------- | ------------------------------------------- | ----------------------------------------------------- |\n| 0. push, pall                | [opcode_functs1.c](./opcode_functs1.c)      | push an element to the stack and print all the values |\n| 1. pint                      | [opcode_functs1.c](./opcode_functs1.c)      | prints the value at the top of the stack              |\n| 2. pop                       | [opcode_functs1.c](./opcode_functs1.c)      | removes the top element of the stack                  |\n| 3. swap                      | [opcode_functs2.c](./opcode_functs2.c)      | swaps the top two elements of the stack               |\n| 4. add                       | [operations_functs.c](./operations_functs.c)| adds the top two elements of the stack                |\n| 5. nop                       | [opcode_functs2.c](./opcode_functs2.c)      | doesn't do anything                                   |\n\n## Advenced tasks:\n| Task                         | File                                               | Description                                                    |\n| ---------------------------- | -------------------------------------------------- | -------------------------------------------------------------- |\n| 6. sub                       | [operations_functs.c](./operations_functs.c)       | subtracts the top element of the stack                         |\n| 7. div                       | [operations_functs.c](./operations_functs.c)       | divides the second top element of the stack                    |\n| 8. mul                       | [operations_functs.c](./operations_functs.c)       | multiplies the second top element of the stack                 |\n| 9. mod                       | [operations_functs.c](./operations_functs.c)       | computes the rest of the division of the second top element    |\n| 10. comments                 | [get_function.c](./get_function.c)                 | treat the line startes with # as a comment (don’t do anything).|\n| 11. pchar                    | [print_functs.c](./print_functs.c)                 | prints the char at the top of the stack, followed by a new line|\n| 12. pstr                     | [print_functs.c](./print_functs.c)                 | prints the string starting at the top of the stack             |\n| 13. rotl                     | [rotations_functs.c](./rotations_functs.c)         | rotates the stack to the top                                   |\n| 14. rotr                     | [rotations_functs.c](./rotations_functs.c)         | rotates the stack to the bottom                                |\n| 15. stack, queue             | [monty.c](./monty.c)                               | Implement the stack and queue opcodes.                         |\n| 16. Brainf*ck                | [bf/1000-school.bf](./bf/1000-school.bf)           |  prints School, followed by a new line.                        |\n| 17. Add two digits           | [bf/1001-add.bf](./bf/1001-add.bf)                 | Add two digits given by the user.                              |\n| 18. Multiplication           | [bf/1002-mul.bf](./bf/1002-mul.bf)                 | Multiply two digits given by the user.                         |\n| 19. Multiplication level up  | [bf/1003-mul.bf](./bf/10023-mul.bf)                | Multiply two digits given by the user.                         |\n\n# Compilation \u0026 Output\nThe code will be compiled this command:\n```\n$ gcc -Wall -Werror -Wextra -pedantic -std=c89 *.c -o monty\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaoutherbo%2Fmonty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaoutherbo%2Fmonty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaoutherbo%2Fmonty/lists"}