annotate Example.ipynb @ 92:9cde0dc0699e default tip

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