{"id":28298983,"url":"https://github.com/patrickbr/saslcompiler","last_synced_at":"2025-10-25T23:49:34.038Z","repository":{"id":15373334,"uuid":"18104540","full_name":"patrickbr/saslcompiler","owner":"patrickbr","description":"A compiler for SASL, a functional programming language developed in 1972.","archived":false,"fork":false,"pushed_at":"2015-05-03T22:10:10.000Z","size":284,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-30T06:19:19.709Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patrickbr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-25T15:07:45.000Z","updated_at":"2020-08-10T23:15:07.000Z","dependencies_parsed_at":"2022-07-20T21:32:17.031Z","dependency_job_id":null,"html_url":"https://github.com/patrickbr/saslcompiler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patrickbr/saslcompiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickbr%2Fsaslcompiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickbr%2Fsaslcompiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickbr%2Fsaslcompiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickbr%2Fsaslcompiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patrickbr","download_url":"https://codeload.github.com/patrickbr/saslcompiler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickbr%2Fsaslcompiler/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259940479,"owners_count":22935284,"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":"2025-05-23T06:15:41.386Z","updated_at":"2025-10-25T23:49:28.989Z","avatar_url":"https://github.com/patrickbr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"SASL Compiler\n============\n\nA compiler for SASL, a functional programming language developed in 1972 (http://en.wikipedia.org/wiki/SASL_(programming_language). Result of a student project at the University of Tübingen. Development took part together with Benjamin Böhm.\n\nUsage\n=====\n\nTests can be run with\n    \n    ant tests\n\nBuild can be run with\n\n    ant build\n\nA jar can be cuild with\n\n    ant jar\n\nEither start the sasl\\_compiler.jar, type your programm and end it with CTRL+D _or_ pipe in the code like this:\n\n    java -jar sasl_compiler.jar \u003c myprogramm.sasl\n\nAn example program outputting the first 5000 primes is included in this repo. Start it with\n\n    java -jar sasl_compiler.jar \u003c primesieve.sasl\n\nExamples\n========\n\nA more thorough introduction to the language can be found on the manual page of the JavaScript port of this compiler: http://patrickbrosi.de/jsasl/manual.html\n\nSimple addition\n---------------\n####Input\n    5+4\n\n####Output\n    9\n\nVariable scopes\n---------------\n####Input\n    ((a where a x=(b where b=x+(c where c=x))) 11)+1\n\n####Output\n    23\n\nPrime sieve\n----------\n####Input\n```\ndef take n l = if n=0 or l=nil then nil\n\telse x:take (n-1) xs where x = hd l;\n\t\t\t\t   xs = tl l\ndef mod x y = (x - (x/y)*y)\ndef primes = sieve (naturals 2)\n\ndef sieve input = (hd input) : (sieve (removeFromList (tl input) (hd input)))\n\ndef removeFromList list ele =if (mod (hd list) ele) = 0\n\t\t\t\t\t\t\tthen (removeFromList (tl list) ele)\n\t\t\t\t\t\telse (hd list) : (removeFromList (tl list) ele)\n\ndef\tnaturals x = x : (naturals (x+1))\n\n.\n\ntake 50 primes\n```\n####Output\n    [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickbr%2Fsaslcompiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrickbr%2Fsaslcompiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickbr%2Fsaslcompiler/lists"}