Mercurial > hg > Members > aka > jupyter_CbC_kernel
comparison Example.ipynb @ 92:9cde0dc0699e default tip
fix README.md
author | aka |
---|---|
date | Wed, 27 Jun 2018 00:10:30 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
91:ee031a093708 | 92:9cde0dc0699e |
---|---|
1 { | |
2 "cells": [ | |
3 { | |
4 "cell_type": "markdown", | |
5 "metadata": {}, | |
6 "source": [ | |
7 "# CbC kernel" | |
8 ] | |
9 }, | |
10 { | |
11 "cell_type": "markdown", | |
12 "metadata": {}, | |
13 "source": [ | |
14 "## Hello CbC!" | |
15 ] | |
16 }, | |
17 { | |
18 "cell_type": "code", | |
19 "execution_count": 4, | |
20 "metadata": { | |
21 "scrolled": true | |
22 }, | |
23 "outputs": [ | |
24 { | |
25 "name": "stdout", | |
26 "output_type": "stream", | |
27 "text": [ | |
28 "Hello CbC!\n" | |
29 ] | |
30 }, | |
31 { | |
32 "name": "stderr", | |
33 "output_type": "stream", | |
34 "text": [ | |
35 "[CbC kernel] Executable exited with code 11" | |
36 ] | |
37 } | |
38 ], | |
39 "source": [ | |
40 "#define __environment _CbC_environment\n", | |
41 "#define __return _CbC_return\n", | |
42 "\n", | |
43 "extern int printf(const char*, ...);\n", | |
44 "\n", | |
45 "__code Hello_CbC();\n", | |
46 "\n", | |
47 "int main(int argc, char **argv){\n", | |
48 " goto Hello_CbC();\n", | |
49 " return 0;\n", | |
50 "}\n", | |
51 "\n", | |
52 "__code Hello_CbC(){\n", | |
53 " printf(\"Hello CbC!\\n\");\n", | |
54 " \n", | |
55 "}" | |
56 ] | |
57 }, | |
58 { | |
59 "cell_type": "markdown", | |
60 "metadata": {}, | |
61 "source": [ | |
62 "## fizzbazz" | |
63 ] | |
64 }, | |
65 { | |
66 "cell_type": "markdown", | |
67 "metadata": {}, | |
68 "source": [ | |
69 "https://gist.github.com/hanachin/3e2f9034e0fe382f019e55de4c6b016b" | |
70 ] | |
71 }, | |
72 { | |
73 "cell_type": "code", | |
74 "execution_count": 2, | |
75 "metadata": {}, | |
76 "outputs": [ | |
77 { | |
78 "name": "stdout", | |
79 "output_type": "stream", | |
80 "text": [ | |
81 "1\n", | |
82 "2\n", | |
83 "Fizz\n", | |
84 "4\n", | |
85 "Buzz\n", | |
86 "Fizz\n", | |
87 "7\n", | |
88 "8\n", | |
89 "Fizz\n", | |
90 "Buzz\n", | |
91 "11\n", | |
92 "Fizz\n", | |
93 "13\n", | |
94 "14\n", | |
95 "FizzBuzz\n", | |
96 "16\n", | |
97 "17\n", | |
98 "Fizz\n", | |
99 "19\n", | |
100 "Buzz\n", | |
101 "Fizz\n", | |
102 "22\n", | |
103 "23\n", | |
104 "Fizz\n", | |
105 "Buzz\n", | |
106 "26\n", | |
107 "Fizz\n", | |
108 "28\n", | |
109 "29\n", | |
110 "FizzBuzz\n", | |
111 "31\n", | |
112 "32\n", | |
113 "Fizz\n", | |
114 "34\n", | |
115 "Buzz\n", | |
116 "Fizz\n", | |
117 "37\n", | |
118 "38\n", | |
119 "Fizz\n", | |
120 "Buzz\n", | |
121 "41\n", | |
122 "Fizz\n", | |
123 "43\n", | |
124 "44\n", | |
125 "FizzBuzz\n", | |
126 "46\n", | |
127 "47\n", | |
128 "Fizz\n", | |
129 "49\n", | |
130 "Buzz\n", | |
131 "Fizz\n", | |
132 "52\n", | |
133 "53\n", | |
134 "Fizz\n", | |
135 "Buzz\n", | |
136 "56\n", | |
137 "Fizz\n", | |
138 "58\n", | |
139 "59\n", | |
140 "FizzBuzz\n", | |
141 "61\n", | |
142 "62\n", | |
143 "Fizz\n", | |
144 "64\n", | |
145 "Buzz\n", | |
146 "Fizz\n", | |
147 "67\n", | |
148 "68\n", | |
149 "Fizz\n", | |
150 "Buzz\n", | |
151 "71\n", | |
152 "Fizz\n", | |
153 "73\n", | |
154 "74\n", | |
155 "FizzBuzz\n", | |
156 "76\n", | |
157 "77\n", | |
158 "Fizz\n", | |
159 "79\n", | |
160 "Buzz\n", | |
161 "Fizz\n", | |
162 "82\n", | |
163 "83\n", | |
164 "Fizz\n", | |
165 "Buzz\n", | |
166 "86\n", | |
167 "Fizz\n", | |
168 "88\n", | |
169 "89\n", | |
170 "FizzBuzz\n", | |
171 "91\n", | |
172 "92\n", | |
173 "Fizz\n", | |
174 "94\n", | |
175 "Buzz\n", | |
176 "Fizz\n", | |
177 "97\n", | |
178 "98\n", | |
179 "Fizz\n", | |
180 "Buzz\n" | |
181 ] | |
182 } | |
183 ], | |
184 "source": [ | |
185 "#define __environment _CbC_environment\n", | |
186 "#define __return _CbC_return\n", | |
187 "\n", | |
188 "#include <stdio.h>\n", | |
189 "\n", | |
190 "typedef __code(*main_ret_code_t)(int, void *env);\n", | |
191 "\n", | |
192 "__code fizzbuzz(int n, int max, main_ret_code_t ret, void *env);\n", | |
193 "__code fizz(int n, int max, main_ret_code_t ret, void *env);\n", | |
194 "__code buzz(int n, int max, const char *fizz, main_ret_code_t ret, void *env);\n", | |
195 "__code print_fizzbuzz(int n, int max, const char *fizz, const char *buzz, main_ret_code_t ret, void *env);\n", | |
196 "\n", | |
197 "int main(void){\n", | |
198 " goto fizzbuzz(1, 100, __return, __environment);\n", | |
199 "}\n", | |
200 "\n", | |
201 "__code fizzbuzz(int n, int max, main_ret_code_t ret, void *env) {\n", | |
202 " if (n > max) goto ret(0, env);\n", | |
203 "\n", | |
204 " goto fizz(n, max, ret, env);\n", | |
205 "}\n", | |
206 "\n", | |
207 "__code fizz(int n, int max, main_ret_code_t ret, void *env) {\n", | |
208 " if (n % 3 == 0) {\n", | |
209 " goto buzz(n, max, \"Fizz\", ret, env);\n", | |
210 " } else {\n", | |
211 " goto buzz(n, max, \"\", ret, env);\n", | |
212 " }\n", | |
213 "}\n", | |
214 "\n", | |
215 "__code buzz(int n, int max, const char *fizz, main_ret_code_t ret, void *env) {\n", | |
216 " if (n % 5 == 0) {\n", | |
217 " goto print_fizzbuzz(n, max, fizz, \"Buzz\", ret, env);\n", | |
218 " } else {\n", | |
219 " goto print_fizzbuzz(n, max, fizz, \"\", ret, env);\n", | |
220 " }\n", | |
221 "}\n", | |
222 "\n", | |
223 "__code print_fizzbuzz(int n, int max, const char *fizz, const char *buzz, main_ret_code_t ret, void *env) {\n", | |
224 " if (*fizz || *buzz) {\n", | |
225 " printf(\"%s%s\\n\", fizz, buzz);\n", | |
226 " } else {\n", | |
227 " printf(\"%d\\n\", n);\n", | |
228 " }\n", | |
229 "\n", | |
230 " goto fizzbuzz(n + 1, max, ret, env);\n", | |
231 "}" | |
232 ] | |
233 }, | |
234 { | |
235 "cell_type": "code", | |
236 "execution_count": null, | |
237 "metadata": {}, | |
238 "outputs": [], | |
239 "source": [] | |
240 } | |
241 ], | |
242 "metadata": { | |
243 "kernelspec": { | |
244 "display_name": "CbC", | |
245 "language": "CbC", | |
246 "name": "cbc" | |
247 }, | |
248 "language_info": { | |
249 "file_extension": ".c", | |
250 "mimetype": "text/plain", | |
251 "name": "C" | |
252 } | |
253 }, | |
254 "nbformat": 4, | |
255 "nbformat_minor": 2 | |
256 } |