{"id":51570406,"url":"https://github.com/matthew-pisano/simplexide","last_synced_at":"2026-07-10T19:01:55.753Z","repository":{"id":181096007,"uuid":"359651792","full_name":"matthew-pisano/SimplexIDE","owner":"matthew-pisano","description":"Simplex is a hybrid interpreted scripting language that focuses on mathematics and scientific calculations.","archived":false,"fork":false,"pushed_at":"2022-07-18T23:08:37.000Z","size":4335,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-07-14T02:32:34.861Z","etag":null,"topics":["educational-project","java","language-processing"],"latest_commit_sha":null,"homepage":"","language":"Java","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/matthew-pisano.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}},"created_at":"2021-04-20T01:52:47.000Z","updated_at":"2023-07-14T02:32:44.480Z","dependencies_parsed_at":"2023-07-14T02:42:44.139Z","dependency_job_id":null,"html_url":"https://github.com/matthew-pisano/SimplexIDE","commit_stats":null,"previous_names":["matthew-pisano/simplexide"],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/matthew-pisano/SimplexIDE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthew-pisano%2FSimplexIDE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthew-pisano%2FSimplexIDE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthew-pisano%2FSimplexIDE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthew-pisano%2FSimplexIDE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matthew-pisano","download_url":"https://codeload.github.com/matthew-pisano/SimplexIDE/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthew-pisano%2FSimplexIDE/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35339931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["educational-project","java","language-processing"],"created_at":"2026-07-10T19:01:55.013Z","updated_at":"2026-07-10T19:01:55.688Z","avatar_url":"https://github.com/matthew-pisano.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simplex and IDE\n\nSimplex is a hybrid interpreted scripting language that focuses on mathematics and scientific calculations.\nIt offers built-in matrix operations (multiplication, determinants, etc.) \nas well as several scientific and fundamental constants.\n\nIt is strictly typed like languages such C or Java, but has a similar syntax to python with type hinting.\n\n## Implementation\n\nSimplex is an hybrid interpreted language that is written in Java.\nThe source code is first processed into tokens using the Lexed.  It is\nthen built into an abstract syntax tree using an interpreter class.  Finally,\nthe code is interpreted and executed using an executor class.  \nThe language is structured in a way so that the source code can be frozen\nat any of the steps during its processing and looked at.  This allows for\nthe language to be an interactive tool for teaching about language processing.\n\n## Android IDE\n\nThe goal of the Simplex Android IDE is to both allow easy mobile programming and serve as an educational tool. When a user of the app is ready to build their program, they have the option to peer into the inner structure of the language. They are able to see each of the three stages:\n- Lexing\n- Parsing\n- Interpreting\n\nand how the code is structured within each, from being split into tokens, to parsed into a tree, to the context given during interpretation. With this tool, the hope is that any users new to programming would gain a deeper understanding of what goes on behind the scenes.\n\n## Execution\n\nAfter a program has been built into its data structure, it is ready for execution. By the time of execution, all variables and functions have been loaded into memory with their initial values, so execution begins at the beginning and goes line by line.\nAs each line is hit, any expressions in that line are resolved to their real values, reading the index of an array for example, and functions have the real values or their arguments given to them for their execution.\n\n## Scientific Focus\n\nOne of the other notable features of Simplex is its concentration on making some physics or mathematical operations easier. The language comes with a wide array of built-in mathematical and physical constants and functions. These include constants like *PI8 or the speed of light (*c*), or functions like *Sine*.\n\nAdditionally, Simplex options for array manipulation that are not present in many other languages. This comes from the fact that each array is treated as a matrix. This allows for adding any N-Dimensional arrays together, which sum just as arrays would in linear algebra. Integer of Double arrays can also be multiplied together to get the dot or cross product of the two matrices. This becomes even more useful when used with the built-in determinate and inverse functions that can be used on the arrays.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthew-pisano%2Fsimplexide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthew-pisano%2Fsimplexide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthew-pisano%2Fsimplexide/lists"}