{"id":13537536,"url":"https://github.com/OpenEuphoria/euphoria","last_synced_at":"2025-04-02T04:31:00.432Z","repository":{"id":37987840,"uuid":"134795441","full_name":"OpenEuphoria/euphoria","owner":"OpenEuphoria","description":"The Euphoria programming language (https://openeuphoria.org/)","archived":false,"fork":false,"pushed_at":"2025-01-24T03:31:37.000Z","size":122895,"stargazers_count":99,"open_issues_count":1,"forks_count":23,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-24T13:15:48.624Z","etag":null,"topics":["euphoria","general-purpose","openeuphoria","programming-language"],"latest_commit_sha":null,"homepage":"","language":"Euphoria","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenEuphoria.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":"openeuphoria","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2018-05-25T02:55:13.000Z","updated_at":"2025-01-26T17:03:13.000Z","dependencies_parsed_at":"2024-03-18T20:14:02.959Z","dependency_job_id":"3f56fb22-668b-4467-bb71-d6b3f0544649","html_url":"https://github.com/OpenEuphoria/euphoria","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEuphoria%2Feuphoria","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEuphoria%2Feuphoria/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEuphoria%2Feuphoria/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenEuphoria%2Feuphoria/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenEuphoria","download_url":"https://codeload.github.com/OpenEuphoria/euphoria/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246404015,"owners_count":20771548,"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":["euphoria","general-purpose","openeuphoria","programming-language"],"created_at":"2024-08-01T09:01:00.202Z","updated_at":"2025-04-02T04:30:55.414Z","avatar_url":"https://github.com/OpenEuphoria.png","language":"Euphoria","funding_links":["https://opencollective.com/openeuphoria"],"categories":["Euphoria","Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Euphoria Programming Language\n\n**Euphoria** is a powerful but easy-to-learn and easy-to-use programming language. It has a simple syntax and structure with consistent rules, and is also easy to read. You can quickly, and with little effort, develop applications big and small for Windows and UNIX variants (Linux, FreeBSD, and OS X).\n\nEuphoria was first released as _shareware_ way back in 1993. Nowadays, it is being developed as an open source project that is community driven and maintained by the [OpenEuphoria Group](http://openeuphoria.org/). Its use of simple English words rather than punctuation and symbols enables you to quickly read the source code and understand it.\n\nEuphoria is a general-purpose programming language with a large standard library making it usable for a variety of tasks.  Please read some sample code for yourself. The language has evolved into a sophisticated tool that can be used to develop web and console applications and supports a variety of native-only and cross-platform GUI toolkits.\n\nEuphoria is one of the fastest interpreted languages around. For even more speed and easy distribution, Euphoria also includes an integrated Euphoria-to-C translator. Euphoria provides subscript checking, uninitialized variable checking, garbage collection, and numerous other run-time checks, and is still _extremely_ fast.\n\n## Language Overview\n\n* Routines are declared as either a `function` _(returns a value)_ or a `procedure` _(does not return a value)_.\n* Constants are declared with `constant` _(for any object type)_ or `enum` _(for integer enumerations only)_.\n* Variables are declared as either an `atom` _(any numeric value)_ or a `sequence` _(a dynamic array of atoms or sequences)_.\n* Variables can be declared as an `object` to hold any value dynamically. Use the `integer` type for simple counting.\n* Sequence element numbers start at `1`, _because counting should be easy_.\n* Strings are stored simply as sequences of atoms of character values.\n\n## Sample Code\n\n### Hello World\n\n```euphoria\ninclude std/io.e\n\nprocedure main()\n    \n    puts( STDOUT, \"Hello, world!\\n\" )\n    \nend procedure\n\nmain()\n```\n\n#### Output\n\n    Hello, world!\n\n### Fibonacci Numbers\n\n```euphoria\nprocedure main()\n    \n    integer f0 = 0\n    integer f1 = 1\n    \n    -- ? prints to console\n    ? f0\n    ? f1\n    \n    while f1 \u003c 100 do\n        \n        integer f = f0 + f1\n        ? f\n        \n        f0 = f1\n        f1 = f\n        \n    end while\n    \nend procedure\n\nmain()\n```\n\n#### Output\n\n    0\n    1\n    1\n    2\n    3\n    5\n    8\n    13\n    21\n    34\n    55\n    89\n    144\n\n### Atoms and integers\n\n```euphoria\ninclude std/io.e\ninclude std/math.e\n\nprocedure main()\n    \n    atom twopi = PI * 2\n    atom halfpi = PI / 2\n    integer myage = 42\n    \n    printf( STDOUT, \"twopi = %0.10\\n\", {twopi} )\n    printf( STDOUT, \"halfpi = %g\\n\", {halfpi} )\n    printf( STDOUT, \"myage is %d\\n\", {myage} )\n    \nend procedure\n\nmain()\n```\n\n#### Output\n\n    twopi = 6.2831853072\n    halfpi = 1.5708\n    myage is 42\n\n### Strings and sequences\n\n```euphoria\ninclude std/io.e\n\nprocedure main()\n    \n    sequence numbers = {1,2,3,4,5}\n    sequence timestwo = numbers * 2\n    sequence myname = \"Fred\"\n    \n    print( STDOUT, numbers )\n    print( STDOUT, timestwo )\n    print( STDOUT, myname )\n    printf( STDOUT, \"my name is %s\\n\", {myname} )\n    \nend procedure\n\nmain()\n```\n\n#### Output\n\n    {1,2,3,4,5}\n    {2,4,6,8,10}\n    {70,114,101,100} -- same as {'F','r','e','d'} or \"Fred\"\n    my name is Fred\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenEuphoria%2Feuphoria","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOpenEuphoria%2Feuphoria","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenEuphoria%2Feuphoria/lists"}