Mercurial > hg > Members > aka > jupyter_CbC_kernel
view Example.ipynb @ 92:9cde0dc0699e default tip
fix README.md
author | aka |
---|---|
date | Wed, 27 Jun 2018 00:10:30 +0900 |
parents | |
children |
line wrap: on
line source
{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# CbC kernel" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hello CbC!" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello CbC!\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[CbC kernel] Executable exited with code 11" ] } ], "source": [ "#define __environment _CbC_environment\n", "#define __return _CbC_return\n", "\n", "extern int printf(const char*, ...);\n", "\n", "__code Hello_CbC();\n", "\n", "int main(int argc, char **argv){\n", " goto Hello_CbC();\n", " return 0;\n", "}\n", "\n", "__code Hello_CbC(){\n", " printf(\"Hello CbC!\\n\");\n", " \n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## fizzbazz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "https://gist.github.com/hanachin/3e2f9034e0fe382f019e55de4c6b016b" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "Fizz\n", "4\n", "Buzz\n", "Fizz\n", "7\n", "8\n", "Fizz\n", "Buzz\n", "11\n", "Fizz\n", "13\n", "14\n", "FizzBuzz\n", "16\n", "17\n", "Fizz\n", "19\n", "Buzz\n", "Fizz\n", "22\n", "23\n", "Fizz\n", "Buzz\n", "26\n", "Fizz\n", "28\n", "29\n", "FizzBuzz\n", "31\n", "32\n", "Fizz\n", "34\n", "Buzz\n", "Fizz\n", "37\n", "38\n", "Fizz\n", "Buzz\n", "41\n", "Fizz\n", "43\n", "44\n", "FizzBuzz\n", "46\n", "47\n", "Fizz\n", "49\n", "Buzz\n", "Fizz\n", "52\n", "53\n", "Fizz\n", "Buzz\n", "56\n", "Fizz\n", "58\n", "59\n", "FizzBuzz\n", "61\n", "62\n", "Fizz\n", "64\n", "Buzz\n", "Fizz\n", "67\n", "68\n", "Fizz\n", "Buzz\n", "71\n", "Fizz\n", "73\n", "74\n", "FizzBuzz\n", "76\n", "77\n", "Fizz\n", "79\n", "Buzz\n", "Fizz\n", "82\n", "83\n", "Fizz\n", "Buzz\n", "86\n", "Fizz\n", "88\n", "89\n", "FizzBuzz\n", "91\n", "92\n", "Fizz\n", "94\n", "Buzz\n", "Fizz\n", "97\n", "98\n", "Fizz\n", "Buzz\n" ] } ], "source": [ "#define __environment _CbC_environment\n", "#define __return _CbC_return\n", "\n", "#include <stdio.h>\n", "\n", "typedef __code(*main_ret_code_t)(int, void *env);\n", "\n", "__code fizzbuzz(int n, int max, main_ret_code_t ret, void *env);\n", "__code fizz(int n, int max, main_ret_code_t ret, void *env);\n", "__code buzz(int n, int max, const char *fizz, main_ret_code_t ret, void *env);\n", "__code print_fizzbuzz(int n, int max, const char *fizz, const char *buzz, main_ret_code_t ret, void *env);\n", "\n", "int main(void){\n", " goto fizzbuzz(1, 100, __return, __environment);\n", "}\n", "\n", "__code fizzbuzz(int n, int max, main_ret_code_t ret, void *env) {\n", " if (n > max) goto ret(0, env);\n", "\n", " goto fizz(n, max, ret, env);\n", "}\n", "\n", "__code fizz(int n, int max, main_ret_code_t ret, void *env) {\n", " if (n % 3 == 0) {\n", " goto buzz(n, max, \"Fizz\", ret, env);\n", " } else {\n", " goto buzz(n, max, \"\", ret, env);\n", " }\n", "}\n", "\n", "__code buzz(int n, int max, const char *fizz, main_ret_code_t ret, void *env) {\n", " if (n % 5 == 0) {\n", " goto print_fizzbuzz(n, max, fizz, \"Buzz\", ret, env);\n", " } else {\n", " goto print_fizzbuzz(n, max, fizz, \"\", ret, env);\n", " }\n", "}\n", "\n", "__code print_fizzbuzz(int n, int max, const char *fizz, const char *buzz, main_ret_code_t ret, void *env) {\n", " if (*fizz || *buzz) {\n", " printf(\"%s%s\\n\", fizz, buzz);\n", " } else {\n", " printf(\"%d\\n\", n);\n", " }\n", "\n", " goto fizzbuzz(n + 1, max, ret, env);\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "CbC", "language": "CbC", "name": "cbc" }, "language_info": { "file_extension": ".c", "mimetype": "text/plain", "name": "C" } }, "nbformat": 4, "nbformat_minor": 2 }