Mercurial > hg > Papers > 2015 > kaito-lola
comparison presentation/presen.html @ 12:40be058f9df8
fix
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 04 Jul 2015 21:20:22 +0900 |
parents | 4cff1ef8fbf6 |
children | 607acd92b8eb |
comparison
equal
deleted
inserted
replaced
11:4cff1ef8fbf6 | 12:40be058f9df8 |
---|---|
280 </div> | 280 </div> |
281 | 281 |
282 <div class='slide'> | 282 <div class='slide'> |
283 <h2>Clang AST</h2> | 283 <h2>Clang AST</h2> |
284 <ul> | 284 <ul> |
285 <li>Abstract Syntax Tree. | 285 <li>The first intermidiate representation. |
286 <li>Representation of the source codes structure. | 286 <li>Representation of the source codes structure. |
287 <li>Basic node type: Stmt, Decl, Expr. | 287 <li>Basic node type: Stmt, Decl, Expr. |
288 </ul> | 288 </ul> |
289 </div> | 289 </div> |
290 | 290 |
314 <h2>Basic strategy of implementating</h2> | 314 <h2>Basic strategy of implementating</h2> |
315 <ul> | 315 <ul> |
316 <li>Code segments are implemented by C functions. | 316 <li>Code segments are implemented by C functions. |
317 <li>Data segments are implemented by C structs. | 317 <li>Data segments are implemented by C structs. |
318 <li>Transition is implemented by tail call elimination. | 318 <li>Transition is implemented by tail call elimination. |
319 <!-- | |
319 <li>Goto with environment is implemented by setjmp and longjmp. | 320 <li>Goto with environment is implemented by setjmp and longjmp. |
320 <ul> | 321 <ul> |
321 <li>Goto with environment enable code segments to return C functions. | 322 <li>Goto with environment enable code segments to return C functions. |
322 </ul> | 323 </ul> |
324 --> | |
323 </ul> | 325 </ul> |
324 </div> | 326 </div> |
325 | 327 |
326 <!-- | 328 <!-- |
327 <div class='slide'> | 329 <div class='slide'> |
349 <div class='slide'> | 351 <div class='slide'> |
350 <h2>__code type</h2> | 352 <h2>__code type</h2> |
351 <table width='100%'> | 353 <table width='100%'> |
352 <tr> | 354 <tr> |
353 <ul> | 355 <ul> |
354 <li>Code segments as __code type functions. | 356 <li>Code segments are implemented __code type functions. |
355 <li>Handled like void functions. | 357 <li>Handled like void functions. |
356 </ul> | 358 </ul> |
357 </tr> | 359 </tr> |
358 </table> | 360 </table> |
359 </div> | 361 </div> |
360 | 362 |
361 <div class='slide'> | 363 <div class='slide'> |
362 <h2>Prototype declaration generating</h2> | 364 <h2>Prototype declaration generating</h2> |
363 <ul> | 365 <ul> |
364 <li>In CbC, programmer write a lot of code segments. | 366 <li>In CbC, programmer write a lot of code segments. |
365 <li>When function pointer's arguments are omitted, TCE was failed sometimes. | 367 <li>Automatically prototype declarator support it. |
366 <li>Automatically prototype declaration generating saves a lot of effort. | 368 <!-- <li>When parser meet a code segment call, it stop current parsing and search called code segment declaration.--> |
367 <li>When parser meet a code segment call, it stop current parsing and search called code segment declaration. | |
368 <li>If the declaration was not found, search definision and generate declaration. | 369 <li>If the declaration was not found, search definision and generate declaration. |
369 <ul> | 370 <ul> |
370 <li>Of course you can write declaration yourself too. | 371 <li>Of course you can write declaration yourself too. |
371 </ul> | 372 </ul> |
372 </ul> | 373 </ul> |
505 <li>All the code segments return value type is void. | 506 <li>All the code segments return value type is void. |
506 </ul> | 507 </ul> |
507 </div> | 508 </div> |
508 | 509 |
509 <div class='slide'> | 510 <div class='slide'> |
510 <h2>What is a Goto with environment?</h2> | 511 <h2>Goto with environment</h2> |
511 <ul> | 512 <ul> |
512 <li>Code segments can reutn C functions by Goto with environment. | 513 <li>Code segments do not have return. |
513 <ul> | 514 <li>Code segments can return C functions by Goto with environment. |
514 Code segment do not have return. | |
515 </ul> | |
516 <li>In the GCC, use nested functions. | 515 <li>In the GCC, use nested functions. |
517 <li>In the LLVM and Clang, use setjmp and longjmp. | 516 <li>In the LLVM and Clang, use setjmp and longjmp. |
518 </ul> | 517 </ul> |
519 </div> | 518 </div> |
520 | 519 |