情報処理学会研究報告 IPSJ SIG Technical Report Vol.2014-ARC-210 No.10 Vol.2014-OS-129 No /5/15 Continuation based C LLVM/clang 3.5 Data Segment, Code Seg
|
|
- さや うばら
- 5 years ago
- Views:
Transcription
1 Continuation based C LLVM/clang 3.5 Data Segment, Code Segment CbC, C, LLVM/clang-3.5 CbC The implementation of Continuation based C Compiler on LLVM/clang 3.5 Kaito Tokumori and Shinji Kono A programming paradigm which use data segments and code segments is proposed. CbC is a lower language of C for this paradigm. CbC has standalone compiler and GCC version. In this study, we add an implement CbC compiler on LLVM/clang-3.5. The detail of implementation and evaluation are shown. 1. Continuation based C on LLVM, code segment, data segment. Continuation based C ( CbC), C. CbC goto. CbC goto,, LLVM CbC code segment, OpenCL, CUDA, Cerium, meta code segment, meta data segment CbC Micro- C GCC University of the Ryukyu. CbC goto,, GCC, CbC, LLVM CbC. LLVM GCC clang, llvm., Jump, GCC., GCC CbC code segment C goto nested function LLVM CALL RETURN,, CALL code segment, Haskell Erlang Scheme,, LLVM llvm,, LLVM CbC. LLVM GCC,. CbC goto jmp 1
2 , LLVM, GCC GCC 2, 0 CbC. LLVM, 0, 2. CbC CbC C code segment, code segment goto. C. C, goto,, goto conv1, code segment C, code, code segment goto code segment goto code segment C, code segment. C,, code segment,,,,, 1 CbC, 2 code segment 3. LLVM/clang LLVM, LLVM LLVM Core, LLVM IR LLVM BitCode,., LLVM IR code print_factorial(int prod) { printf("factorial = %d\n",prod); exit(0); code factorial0(int prod, int x) { if ( x >= 1) { goto factorial0(prod*x, x-1); else{ goto print_factorial(prod); code factorial(int x) { goto factorial0(1, x); int main(int argc, char **argv) { int i; i = atoi(argv[1]); goto factorial(i); 1 goto 2 CbC factorial0 factorial0 goto goto goto exit goto print_ factorial goto code segment, LLVM clang LLVM C/C++/Objective-C, LLVM IR, LLVM. 3 clang, clang,, AST. AST Code- Gen LLVM IR. LLVM IR LLVM. LLVM IR, SelectionDAGISel Machine Code., SelectionDAG, Machine Code Machine code, Code Emission 2
3 ., clang QualType. clang C/C++ Obj-C LLVM LLVM IR 3 Parser Machine Code optimizations SelectionDAG ISel clang AST Code Emission Machine Code CodeGen Assembly Code clang, LLVM 3.1 QualType Qualtype, const, volatile, int, char, * () Type Type isintegertype ispointertype, getpointeetype Type QualType const is- ConstQualified, volatile isvolatilequalified 4 const int * QualType QualType A QualType B isconstqualified() true 4 gettypeptr() gettypeptr() Type (PointerType) Type (IntegerType) const int * QualType getpointeetype() QualType A const int *. gettypeptr, PointerType getpointeetype QualType B. IntegerType const, Qual- Type B isconstqualified true., clang, QualType, Type. 3.2 Abstract Syntax Tree (AST) AST, -Xclang -ast-dump AST AST, Decl, Stmt, Expr CbC AST 3.3 LLVM IR LLVM IR LLVM BitCode, 1). Static Single Assignment (SSA), LLVM,, JIT bitcode,, CbC 3.4 SelectionDAG SelectionDAG LLVM IR SelectionDAG Instruction Selection Pass. SelectionDAG, SDNode SDNode, SelectionDAG illegal legal, illigal SelectionDAG LLVM IR illegal SelectionDAG, legal SelectionDAG, CbC, Tail Call Elimination code segment 3.5 Machine Code Machine Code SSA non-ssa. LLVM IR, Machine Code LLVM MachineFunction, MachineBasicBlock, MachineInstr 3
4 . MachineInstr, MachineBasicBlock MachineInstr, MachineFunction MachineBasicBlock CbC 3.6 MC Layer MC Layer,., MC Layer, Machine Code,, JIT API CbC 4. LLVM/clang 3.5 CbC LLVM clang CbC LLVM, clang, $(CLANG) clang, $(LLVM) LLVM 4.1 clang code code segment $(CLANG)/include/ code code clang clang/basic/tokenkinds.def, kw ID., 5 code. KEYWORD,, KEYALL C, C++ code segment C KEYALL. clang code clang TypeSpecType enum. enum $(CLANG)/include/clang/Basic/Specifiers.h, 6 QualType Type, 7 KEYWORD( func KEYWORD( objc_yes KEYWORD( objc_no, KEYALL), KEYALL), KEYALL) // CbC Keywords. KEYWORD( code, KEYALL) KEYWORD( return, KEYALL) KEYWORD( environment, KEYALL) 5 TokenKinds.def enum TypeSpecifierType { TST_unspecified, TST_void, TST code, 6 Specifiers.h SIGNED TYPE UNSIGNED TYPE, BUILTIN TYPE code,, void BUILTIN TYPE code BUILTIN TYPE // 'bool' in C++, '_Bool' in C99 UNSIGNED_TYPE(Bool, BoolTy) // 'char' for targets where it's unsigned SHARED_SINGLETON_TYPE(UNSIGNE D_TYPE(Char_U, CharTy)) // 'unsigned char', explicitly qualified UNSIGNED_TYPE(UChar, UnsignedCharTy) BUILTIN_TYPE( Code, CodeTy) clang 7 BuiltinTypes.def code, code segment. $(CLANG)/include/clang/AST/BuiltinTypes.def Parser ParseDeclarationSpecifiers code clang $(CLANG)/lib/Parse/ParseDecl.cpp 4
5 , switch kw code switch 8 SetTypeSpecType, code DeclSpec. DeclSpec, QualType. case tokkw code { LangOptions* LOP; LOP = const_cast<langoptions*>(&getlangopts()); LOP->HasCodeSegment = 1; isinvalid = DS.SetTypeSpecType(DeclSpecTST code, Loc, PrevSpec, DiagID); break; 8 code parse, LangOptions,, code segment LLVM,. tailcallopt LangOptions $(CLANG)/include/clang/Basic/LangOptions.def. 9, HasCodeSegment LANGOPT,,,. $(LLVM)/lib/IR/LLVMContextImpl.h. TypeID, $(LLVM)/include/llvm/IR/Type.h., 10, 11, CodeTy VoidTy, isvoidty. Type VoidTy. Type CodeTy if, // Basic type instances. Type VoidTy, LabelTy, HalfTy, FloatTy, DoubleTy, MetadataTy; Type X86_FP80Ty, FP128Ty, PPC_FP128Ty, X86_MMXTy; Type CodeTy; 10 LLVM code enum TypeID { StructTyID, ArrayTyID, PointerTyID, VectorTyID other vector type, CodeTyID 11 ///< 12 Structures ///< 13 Arrays ///< 14 Pointers ///< 15 SIMD 'packed' format, or /// for CbC LLVM Type ID LANGOPT(HasCodeSegment 9, 1, 0, "CbC") 4.2 LLVM code LLVM clang. code LLVM IR type, code segment, LLVM IR void. LLVM Type, Type 4.3 goto syntax goto syntax, goto clang goto, Parser ParseStatementOrDeclarationAfterAttributes, $(clang)/lib/parse/parsestmt.cpp. switch, kw goto 12. ifndef, endif. if, token, goto C goto, C goto ParseCbCGotoStatement, 5
6 case tokkw_goto // if it is not C's goto syntax if (!(NextToken().is(tokidentifier) && PP.LookAhead(1).is(toksemi)) && NextToken().isNot(tokstar)) { SemiError = "goto code segment"; return ParseCbCGotoStatement(Attrs, Stmts); Res = ParseGotoStatement(); SemiError = "goto"; break; 12 goto syntax 4.4 clang/llvm code clang Type LLVM $(CLANG)/lib/CodeGen/CGCall.cpp Get- FunctionType. 14. ABIArgInfo clang. void Ignore, code. switch, code LLVM code, 13. StmtResult ParserParseCbCGotoStatement( ParsedAttributesWithRange &Attrs,StmtVector &Stmts) { assert(tok.is(tokkw_goto) && "Not a goto stmt!"); ParseScope CompoundScope(this, ScopeDeclScope); StmtVector CompoundedStmts; SourceLocation gotoloc = ConsumeToken(); // eat the 'goto'. StmtResult gotores; Token TokAfterGoto = Tok; Stmtsp = &Stmts; gotores = ParseStatementOrDeclaration(Stmts, false); if (gotores.get() == NULL) return StmtError(); // if it is not function call else if (gotores.get()->getstmtclass()!= StmtCallExprClass) { Diag(TokAfterGoto, diagerr_expected_ident_or_cs); return StmtError(); assert((attrs.empty() gotores.isinvalid() gotores.isusable()) && "attributes on empty statement"); if (!(Attrs.empty() gotores.isinvalid())) gotores = Actions.ProcessStmtAttributes(gotoRes.get(), Attrs.getList(), Attrs.Range); if (gotores.isusable()) CompoundedStmts.push_back(gotoRes.release()); // add return; after goto codesegment(); if (Actions.getCurFunctionDecl()->getResultType().getTypePtr() ->is CodeType()) { ExprResult retexpr; StmtResult retres; retres = Actions.ActOnReturnStmt(gotoLoc, retexpr.take()); if (retres.isusable()) CompoundedStmts.push_back(retRes.release()); return Actions.ActOnCompoundStmt(gotoLoc, Tok.getLocation(), CompoundedStmts, false); case ABIArgInfoIgnore if (FI.getReturnType().getTypePtr()- >is CodeType()) resulttype = llvmtypeget CodeTy(getLLVMContext()); else resulttype = llvmtypegetvoidty(getllvmcontext()); #else resulttype = llvmtypegetvoidty(getllvmcontext()); break; 14 clang/llvm 4.5 Tail call elimination Tail call elimination, code segment call jmp 15 Tail call elimination caller funcb call jmp, funcb caller main. int main(){ call caller(); call return void caller(){ call B(); ret call return void B(){ ret 13 ParseGotoStmt Tail call elimination, goto Stmt., tail call elimination return statement. ParseStatementOrDeclaration, goto. int main(){ call caller(); call 15 void caller(){ jump B(); jump return Tail call elimination void B(){ ret 6
7 ( 1 ) tail tail call eliminatoin pass. ( 2 ) fastcc, cc 10 (GHC calling convention), cc 11 (HiPE calling convention) ( 3 ) tailcallopt. tail call elimination pass. clang pass $(CLANG)/lib/CodeGen/BackendUtil.cpp CreatePasses clang 2 tail call elimination, pass populatemodulepassmanager LLVM pass 16,., createtailcalleliminationpass, code segment tail call elimination. if (OptLevel == 0) { MPM.add(createTailCallEliminationPass(true)); // Eliminate tail calls MPM.add(createTailCallEliminationPass(false)); // Eliminate tail calls #else MPM.add(createTailCallEliminationPass()); // Eliminate tail calls 16 pass code segment tail pass. pass SROA pass codegen- Prepare pass. SROA pass pass LLVM IR alloca tail call elimination, tail call elimination pass tail alloca codegenprepare pass pass, if call return pass., fastcc, cc 10, cc 11, LLVM cc 10 cc 11 fastcc. fastcc,,,. fastcc clang CGFunctionInfo $(CLANG)/lib/CodeGen /CGCall.cpp arrangellvmfunctioninfo. 17 CC fastcc if(resulttype.gettypeptr()->is CodeType()){ if(!required.allowsoptionalargs()) CC = llvmcallingconvfast; 17 fastcc, tailcallopt clang LLVM, clang LLVM $(CLANG)/lib/CodeGen/BackendUtil.cpp CreateTargetMachine. 18 tailcallopt GuaranteedTailCallOpt, code segment, LLVM Has- CodeSegment codegenprepare pass. LLVM LLVM TargetOptions, $(LLVM)/include/llvm/Target/ TargetOp- 7
8 Options.PositionIndependentExecutable = LangOpts.PIELevel!= 0; Options.EnableSegmentedStacks = CodeGenOpts.EnableSegmentedStacks; Options.HasCodeSegment = LangOpts.HasCodeSegment; Options.GuaranteedTailCallOpt = LangOpts.HasCodeSegment; 18 tailcallopt tions.h TargetOptions, 4.6 CbC C,, return, environment 19, caller func 0 1. code cs(int retval, code(*ret)(int,void *),void *env){ goto ret(n, env); int func (){ goto cs(1, return, environment); return 0; int caller (){ int retval; retval = func(); // retval should be setjmp/longjmp C CbC., C stack pointer, register save setjmp. Micro C, LLVM/GCC, C 5.,, CbC Micro-C, GCC, LLVM/clang, x86-64 Mac OS X., GCC ,, CbC, ,21 CbC code segment, code factorial(int x) { goto factorial0(1, x); GCC CbC nested function 2), LLVM/clang setjmp, longjmp return, environment, setjmp,, return code segment, environment, return code segment environment return return code segment longjmp.,, clang QualType 20 code segment _factorial ## BB#0 ## %entry subq $24, %rsp Ltmp5.cfi_def_cfa_offset 32 movl $1, %eax movl %edi, 20(%rsp) ## 4-byte Spill movl %eax, %edi movl 20(%rsp), %esi ## 4-byte Reload addq $24, %rsp jmp _factorial0 ## TAILCALL.cfi_endproc 21 factorial0, call jmp, tail call elimination 8
9 , CbC LLVM/clang 5.2 conv1, Micro-C, GCC CbC. conv1 CbC, 1 CbC, 2, 3 Micro-C 1., GCC stack overflow../conv1 1./conv1 2./conv1 3 Micro-C GCC -O LLVM/clang -O LLVM/clang -O Micro-C, GCC, LLVM/clang ( ), code segment data segment code segment data segment task, data segment,, priority, task,., setjmp/longjmp, GCC, LLVM nested function, setjmp/longjmp, Micro-C,, LLVM/clang, LLVM Micro- C LLVM/clang, LLVM/clang LLVM/clang, GCC, LLVM/clang 6., LLVM/clang CbC, GCC nested function, setjmp/longjmp, nested function CbC, data segment data segment conv1 A. 1) LLVM Language Reference Manual. http//llvm.org/docs/langref.html. 2),. Continuation based c gcc-4.2. (OS), April ),. Continuation based c gcc , Jan ) LLVM Documentation. http//llvm.org/docs/index.html. 5) clang 3.5 documentation. http//clang.llvm.org/docs/index.html. 6) clang API Documentation. http//clang.llvm.org/doxygen/. A.1 conv1.c 1 #include <stdio.h> 2 #include <stdlib.h> 3 static int loop; 4 5 #if 1 // def micro_c 6 #define CC_ONLY 0 7 #else 8 #define CC_ONLY #ifdef CLANG // for clang/llvm 12 #define _CbC_return return 13 #define _CbC_environment environment 9
10 typedef char *stack; 17 #include "conv1.h" /* classical function call case (0) */ 20 int f0(int i) { 21 int k,j; 22 k = 3+i; 23 j = g0(i+3); 24 return k+4+j; int g0(int i) { 28 return h0(i+4)+i; int h0(int i) { 32 return i+4; #if!cc_only /* straight conversion case (1) */ struct cont_interface { // General Return Continuation 41 code (*ret)(int,stack); 42 ; code f(int i,stack sp) { 45 int k,j; 46 k = 3+i; 47 goto f_g0(i,k,sp); struct f_g0_interface { // Specialized Return Continuation 51 code (*ret)(int,stack); 52 int i_,k_,j_; 53 ; code f_g1(int j,stack sp); code f_g0(int i,int k,stack sp) { // Caller 58 struct f_g0_interface *c = 59 (struct f_g0_interface *)(sp -= sizeof(struct f_g0_interface)); c->ret = f_g1; 62 c->k_ = k; 63 c->i_ = i; goto g(i+3,sp); code f_g1(int j,stack sp) { // Continuation 69 struct f_g0_interface *c = (struct f_g0_interface *)sp; 70 int k = c->k_; 71 sp+=sizeof(struct f_g0_interface); 72 c = (struct f_g0_interface *)sp; 73 goto (c->ret)(k+4+j,sp); code g_h1(int j,stack sp); code g(int i,stack sp) { // Caller 79 struct f_g0_interface *c = 80 (struct f_g0_interface *)(sp -= sizeof(struct f_g0_interface)); c->ret = g_h1; 83 c->i_ = i; goto h(i+3,sp); code g_h1(int j,stack sp) { // Continuation 89 struct f_g0_interface *c = (struct f_g0_interface *)sp; 90 int i = c->i_; 91 sp+=sizeof(struct f_g0_interface); 92 c = (struct f_g0_interface *)sp; 93 goto (c->ret)(j+i,sp); code h(int i,stack sp) { 97 struct f_g0_interface *c = (struct f_g0_interface *)sp; 98 goto (c->ret)(i+4,sp); struct main_continuation { // General Return Continuation 102 code (*ret)(int,stack); 103 code (*main_ret)(int,void*); 104 void *env; 105 ; code main_return(int i,stack sp) { 108 if (loop-->0) 109 goto f(233,sp); 110 printf("#0103%d\n",i); 111 goto (( (struct main_continuation *)sp)-> main_ret)(0, 112 ((struct main_continuation *)sp)->env); /* little optimzation without stack continuation (2) */ code f2(int i,char *sp) { 118 int k,j; 119 k = 3+i; 120 goto g2(i,k,i+3,sp); code g2(int i,int k,int j,char *sp) { 124 j = j+4; 125 goto h2(i,k+4+j,sp); code h2_1(int i,int k,int j,char *sp) { 129 goto main_return2(i+j,sp); code h2(int i,int k,char *sp) { 133 goto h2_1(i,k,i+4,sp); code main_return2(int i,stack sp) { 137 if (loop-->0) 138 goto f2(233,sp); 139 printf("#0132%d\n",i); 140 goto (( (struct main_continuation *)sp)-> main_ret)(0, 141 ((struct main_continuation *)sp)->env); /* little optimizaed case (3) */ code f2_1(int i,char *sp) { 147 int k,j; 148 k = 3+i; 10
11 149 goto g2_1(k,i+3,sp); code g2_1(int k,int i,char *sp) { 153 goto h2_11(k,i+4,sp); code f2_0_1(int k,int j,char *sp); 157 code h2_1_1(int i,int k,int j,char *sp) { 158 goto f2_0_1(k,i+j,sp); code h2_11(int i,int k,char *sp) { 162 goto h2_1_1(i,k,i+4,sp); code f2_0_1(int k,int j,char *sp) { 166 goto (( (struct cont_interface *)sp)->ret)(k+4+ j,sp); code main_return2_1(int i,stack sp) { 170 if (loop-->0) 171 goto f2_1(233,sp); 172 printf("#0165%d\n",i); 173 exit(0); 174 //goto (( (struct main_continuation *)sp)-> main_ret)(0, 175 //((struct main_continuation *)sp)->env); #define STACK_SIZE char main_stack[stack_size]; 180 #define stack_last (main_stack+stack_size) #define LOOP_COUNT int 186 main(int ac,char *av[]) 187 { 188 #if!cc_only 189 struct main_continuation *cont; 190 stack sp = stack_last; int sw; 193 int j; 194 if (ac==2) sw = atoi(av[1]); 195 else sw=3; if (sw==0) { 198 for(loop=0;loop<loop_count;loop++) { 199 j = f0(loop); printf("#0193%d\n",j); 202 #if!cc_only 203 else if (sw==1) { 204 loop = LOOP_COUNT; 205 sp -= sizeof(*cont); 206 cont = (struct main_continuation *)sp; 207 cont->ret = main_return; 208 cont->main_ret = _CbC_return; 209 cont->env = _CbC_environment; 210 goto f(loop,sp); 211 else if (sw==2) { 212 loop = LOOP_COUNT; 213 sp -= sizeof(*cont); 214 cont = (struct main_continuation *)sp; 215 cont->ret = main_return2; 216 cont->main_ret = _CbC_return; 217 cont->env = _CbC_environment; 218 goto f2(loop,sp); 219 else if (sw==3) { 220 loop = LOOP_COUNT; 221 sp -= sizeof(*cont); 222 cont = (struct main_continuation *)sp; 223 cont->ret = main_return2_1; 224 cont->main_ret = _CbC_return; 225 cont->env = _CbC_environment; 226 goto f2_1(loop,sp); return 0; /* end */ 11
r1.dvi
2014 1 2014.4.10 0 / 1 / 2 / 3 Lisp 4 5 ( ) 1 (5 1 ) 5 1 1.1? 0 1 (bit sequence) 5 101 3 11 2 (binary system) 2 1000 8 1 ( ) ( )? ( 1) r1 1000 1001 r2 1002... r3 1: (memory) (address) CPU (instruction)
More informationtuat1.dvi
( 1 ) http://ist.ksc.kwansei.ac.jp/ tutimura/ 2012 6 23 ( 1 ) 1 / 58 C ( 1 ) 2 / 58 2008 9 2002 2005 T E X ptetex3, ptexlive pt E X UTF-8 xdvi-jp 3 ( 1 ) 3 / 58 ( 1 ) 4 / 58 C,... ( 1 ) 5 / 58 6/23( )
More informationr07.dvi
19 7 ( ) 2019.4.20 1 1.1 (data structure ( (dynamic data structure 1 malloc C free C (garbage collection GC C GC(conservative GC 2 1.2 data next p 3 5 7 9 p 3 5 7 9 p 3 5 7 9 1 1: (single linked list 1
More informationohp07.dvi
19 7 ( ) 2019.4.20 1 (data structure) ( ) (dynamic data structure) 1 malloc C free 1 (static data structure) 2 (2) C (garbage collection GC) C GC(conservative GC) 2 2 conservative GC 3 data next p 3 5
More informationAgenda Intro & history LLVM overview Demo Pros & Cons LLVM Intermediate Language LLVM tools
LLVM Intro Syoyo Fujita syoyo@lucillerender.org Agenda Intro & history LLVM overview Demo Pros & Cons LLVM Intermediate Language LLVM tools LLVM , Lightweight Language No! No! No! LLVM , Virtual Machine
More information/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1
I117 II I117 PROGRAMMING PRACTICE II 2 MEMORY MANAGEMENT 2 Research Center for Advanced Computing Infrastructure (RCACI) / Yasuhiro Ohara yasu@jaist.ac.jp / SCHEDULE 1. 2011/06/07(Tue) / Basic of Programming
More informationuntitled
II yacc 005 : 1, 1 1 1 %{ int lineno=0; 3 int wordno=0; 4 int charno=0; 5 6 %} 7 8 %% 9 [ \t]+ { charno+=strlen(yytext); } 10 "\n" { lineno++; charno++; } 11 [^ \t\n]+ { wordno++; charno+=strlen(yytext);}
More informationCondition DAQ condition condition 2 3 XML key value
Condition DAQ condition 2009 6 10 2009 7 2 2009 7 3 2010 8 3 1 2 2 condition 2 3 XML key value 3 4 4 4.1............................. 5 4.2...................... 5 5 6 6 Makefile 7 7 9 7.1 Condition.h.............................
More informationohp03.dvi
19 3 ( ) 2019.4.20 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void int main(int argc, char *argv[]) {... 2 (2) argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0
More information‚æ4›ñ
( ) ( ) ( ) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 (OUS) 9 26 1 / 28 ( ) ( ) ( ) A B C D Z a b c d z 0 1 2 9 (OUS) 9
More informationuntitled
II 4 Yacc Lex 2005 : 0 1 Yacc 20 Lex 1 20 traverse 1 %% 2 [0-9]+ { yylval.val = atoi((char*)yytext); return NUM; 3 "+" { return + ; 4 "*" { return * ; 5 "-" { return - ; 6 "/" { return / ; 7 [ \t] { /*
More information:30 12:00 I. I VI II. III. IV. a d V. VI
2018 2018 08 02 10:30 12:00 I. I VI II. III. IV. a d V. VI. 80 100 60 1 I. Backus-Naur BNF N N y N x N xy yx : yxxyxy N N x, y N (parse tree) (1) yxyyx (2) xyxyxy (3) yxxyxyy (4) yxxxyxxy N y N x N yx
More information1:. Csmith,, (B!=0? A/B : A),.,., Orange3 [3], Orange4 [4],., Csmith., Csmith GCC LLVM.,,., Orange3, Orange4,, if for., Orange4, C, Csmith.,., if, for
C 1 1 1, C,.,,, if, for,.,, while, switch,,,. Orange4,, GCC-8.0.0 LLVM/Clang-6.0 ( 2017 12 ).,,,, Enriching Generation of Control Statements and Data Structures for Random Test of C Compilers Based on
More information() () (parse tree) ( (( ) * 50) ) ( ( NUM 10 + NUM 30 ) * NUM 50 ) ( * ) ( + ) NUM 50 NUM NUM (abstract syntax tree, AST) ( (( ) * 5
3 lex yacc http://www.cs.info.mie-u.ac.jp/~toshi/lectures/compiler/ 2018 6 1 () () (parse tree) ( ((10 + 30) * 50) ) ( ( NUM 10 + NUM 30 ) * NUM 50 ) ( * ) ( + ) NUM 50 NUM NUM 10 30 (abstract syntax tree,
More informationr08.dvi
19 8 ( ) 019.4.0 1 1.1 (linked list) ( ) next ( 1) (head) (tail) ( ) top head tail head data next 1: NULL nil ( ) NULL ( NULL ) ( 1 ) (double linked list ) ( ) 1 next 1 prev 1 head cur tail head cur prev
More informationdouble float
2015 3 13 1 2 2 3 2.1.......................... 3 2.2............................. 3 3 4 3.1............................... 4 3.2 double float......................... 5 3.3 main.......................
More informationr03.dvi
19 ( ) 019.4.0 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void... argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0 a a \0 b b b \0 c c c \0 1: // argdemo1.c ---
More information解きながら学ぶC++入門編
!... 38!=... 35 "... 112 " "... 311 " "... 4, 264 #... 371 #define... 126, 371 #endif... 369 #if... 369 #ifndef... 369 #include... 3, 311 #undef... 371 %... 17, 18 %=... 85 &... 222 &... 203 &&... 40 &=...
More information新版明解C言語 実践編
2 List - "max.h" a, b max List - max "max.h" #define max(a, b) ((a) > (b)? (a) : (b)) max List -2 List -2 max #include "max.h" int x, y; printf("x"); printf("y"); scanf("%d", &x); scanf("%d", &y); printf("max(x,
More informationorg/ghc/ Windows Linux RPM 3.2 GHCi GHC gcc javac ghc GHCi(ghci) GHCi Prelude> GHCi :load file :l file :also file :a file :reload :r :type expr :t exp
3 Haskell Haskell Haskell 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 6. C Java 3.1 Haskell Haskell GHC (Glasgow Haskell Compiler 1 ) GHC Haskell GHC http://www.haskell. 1 Guarded Horn Clauses III - 1 org/ghc/ Windows
More informationohp08.dvi
19 8 ( ) 2019.4.20 1 (linked list) ( ) next ( 1) (head) (tail) ( ) top head tail head data next 1: 2 (2) NULL nil ( ) NULL ( NULL ) ( 1 ) (double linked list ) ( 2) 3 (3) head cur tail head cur prev data
More informationI. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (
2016 2016 07 28 10:30 12:00 I. I VI II. III. IV. a d V. VI. 80 100 60 1 I. Backus-Naur BNF : 11011 N N 0 N N 11 1001 N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) 1100100 (2) 1111011 (3) 1110010 (4) 1001011
More information2008 IIA (program) pro(before)+gram(write) (artificial language) (programming languege) (programming) (machine language) (assembly language) ( )
2008 IIA 1 1.1 (program) pro(before)+gram(write) (artificial language) (programming languege) (programming) (machine language) (assembly language) () (high-level language) 3 (machine language) (CPU) 0
More information橡Pro PDF
1 void main( ) char c; /* int c; */ int sum=0; while ((c = getchar())!= EOF) if(isdigit(c) ) sum += (c-'0'); printf("%d\n", sum); main()int i,sum=0; for(i=0;i
More informationMinimum C Minimum C Minimum C BNF T okenseq W hite Any D
6 2019 5 14 6.1 Minimum C....................... 6 1 6.2....................................... 6 7 6.1 Minimum C Minimum C BNF T okenseq W hite Any Digit ::= 0 1 2... 9. Number ::= Digit Digit. Alphabet
More informationAgenda Motivation How it works Performance Limitation Conclusion
py2llvm: Python to LLVM translator Syoyo Fujita Agenda Motivation How it works Performance Limitation Conclusion Agenda Motivation How it works Performance Limitation Conclusion py2llvm Python LLVM Python,
More informationI 2 tutimura/ I 2 p.1/??
I 2 tutimura@mist.i.u-tokyo.ac.jp http://www.misojiro.t.u-tokyo.ac.jp/ tutimura/ 2002 4 25 I 2 p.1/?? / / Makefile I 2 p.2/?? Makefile make GNU make I 2 p.3/?? Makefile L A T E X I 2 p.4/?? core (1) gcc,
More informationI. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) + x * x + x x (4) * *
2015 2015 07 30 10:30 12:00 I. I VI II. III. IV. a d V. VI. 80 100 60 1 I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) +
More information1153006 JavaScript try-catch JavaScript JavaScript try-catch try-catch try-catch try-catch try-catch 1 2 2 try-catch try-catch try-catch try-catch 25 1153006 26 2 12 1 1 1 2 3 2.1... 3 2.1.1... 4 2.1.2
More informationSystemC言語概論
SystemC CPU S/W 2004/01/29 4 SystemC 1 SystemC 2.0.1 CPU S/W 3 ISS SystemC Co-Simulation 2004/01/29 4 SystemC 2 ISS SystemC Co-Simulation GenericCPU_Base ( ) GenericCPU_ISS GenericCPU_Prog GenericCPU_CoSim
More information: gettoken(1) module P = Printf exception End_of_system (* *) let _ISTREAM = ref stdin let ch = ref ( ) let read () = (let c =!ch in ch := inp
7 OCaml () 1. 2. () (compiler) (interpreter) 2 OCaml (syntax) (BNF,backus normal form ) 1 + 2; let x be 2-1 in x; ::= ; let be in ; ::= + - ::= * / ::= 7.1 ( (printable characters) (tokens) 1 (lexical
More information解きながら学ぶJava入門編
44 // class Negative { System.out.print(""); int n = stdin.nextint(); if (n < 0) System.out.println(""); -10 Ÿ 35 Ÿ 0 n if statement if ( ) if i f ( ) if n < 0 < true false true false boolean literalboolean
More informationslide5.pptx
ソフトウェア工学入門 第 5 回コマンド作成 1 head コマンド作成 1 早速ですが 次のプログラムを head.c という名前で作成してください #include #include static void do_head(file *f, long nlines); int main(int argc, char *argv[]) { if (argc!=
More informationbitvisor-ipc v12b.key
PC PC OS PC PC 1 1 2 101 101 enum tre_rpc_direction { TRE_RPC_DIRECTION_REQUEST, TRE_RPC_DIRECTION_RESULT }; struct tre_rpc_request { }; enum tre_rpc_direction direction; ulong id; ulong proc_number;
More informationII 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C main main 1 NULL NULL for 2 (a) Yacc 2 (b) 2 3 y
II 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C 1 6 9 1 main main 1 NULL NULL 1 15 23 25 48 26 30 32 36 38 43 45 47 50 52 for 2 (a) 2 2 1 Yacc 2 (b) 2 3 yytext tmp2 ("") tmp2->next->word tmp2 yytext tmp2->next->word
More information,,,,., C Java,,.,,.,., ,,.,, i
24 Development of the programming s learning tool for children be derived from maze 1130353 2013 3 1 ,,,,., C Java,,.,,.,., 1 6 1 2.,,.,, i Abstract Development of the programming s learning tool for children
More information£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡
(2018) 2018 5 17 0 0 if switch if if ( ) if ( 0) if ( ) if ( 0) if ( ) (0) if ( 0) if ( ) (0) ( ) ; if else if ( ) 1 else 2 if else ( 0) 1 if ( ) 1 else 2 if else ( 0) 1 if ( ) 1 else 2 (0) 2 if else
More information:30 12:00 I. I VI II. III. IV. a d V. VI
2017 2017 08 03 10:30 12:00 I. I VI II. III. IV. a d V. VI. 80 100 60 1 I. Backus-Naur BNF X [ S ] a S S ; X X X, S [, a, ], ; BNF X (parse tree) (1) [a;a] (2) [[a]] (3) [a;[a]] (4) [[a];a] : [a] X 2 222222
More information新・明解C言語 実践編
第 1 章 見 21 1-1 見えないエラー 見 List 1-1 "max2x1.h" a, b max2 List 1-1 chap01/max2x1.h max2 "max2x1.h" #define max2(a, b) ((a) > (b)? (a) : (b)) max2 List 1-2 List 1-2 chap01/max2x1test.c max2 #include
More informationlistings-ext
(6) Python (2) ( ) ohsaki@kwansei.ac.jp 5 Python (2) 1 5.1 (statement)........................... 1 5.2 (scope)......................... 11 5.3 (subroutine).................... 14 5 Python (2) Python 5.1
More information1.ppt
/* * Program name: hello.c */ #include int main() { printf( hello, world\n ); return 0; /* * Program name: Hello.java */ import java.io.*; class Hello { public static void main(string[] arg)
More informationIntel Memory Protection Extensions(Intel MPX) x86, x CPU skylake 2015 Intel Software Development Emulator 本資料に登場する Intel は Intel Corp. の登録
Monthly Research Intel Memory Protection Extensions http://www.ffri.jp Ver 1.00.01 1 Intel Memory Protection Extensions(Intel MPX) x86, x86-64 2015 2 CPU skylake 2015 Intel Software Development Emulator
More informationjoho07-1.ppt
0xbffffc5c 0xbffffc60 xxxxxxxx xxxxxxxx 00001010 00000000 00000000 00000000 01100011 00000000 00000000 00000000 xxxxxxxx x y 2 func1 func2 double func1(double y) { y = y + 5.0; return y; } double func2(double*
More informationcpp1.dvi
2017 c 1 C++ (1) C C++, C++, C 11, 12 13 (1) 14 (2) 11 1 n C++ //, [List 11] 1: #include // C 2: 3: int main(void) { 4: std::cout
More informationdebug ( ) 1) ( ) 2) ( ) assert, printf ( ) Japan Advanced Institute of Science and Technology
I117 28 School of Information Science, Japan Advanced Institute of Science and Technology debug ( ) 1) ( ) 2) ( ) assert, printf ( ) Japan Advanced Institute of Science and Technology 2008 1-2 1 a) b)
More informationCOINS 5 2.1
COINS (0501699) 20 21 2 5 1 3 1.1....................................... 3 1.2..................................... 4 1.3....................................... 4 2 COINS 5 2.1 COINS..................................
More informationCX-Checker CX-Checker (1)XPath (2)DOM (3) 3 XPath CX-Checker. MISRA-C 62%(79/127) SQMlint 76%(13/17) XPath CX-Checker 3. CX-Checker 4., MISRA-C CX- Ch
CX-Checker: C 1 1 2 3 4 5 1 CX-Checker CX-Checker XPath DOM 3 CX-Checker MISRA-C CX-Checker: A Customizable Coding Checker for C TOSHINORI OSUKA, 1 TAKASHI KOBAYASHI, 1 JUNICHI MASE, 2 NORITOSHI ATSUMI,
More informationMicrosoft PowerPoint - CproNt02.ppt [互換モード]
第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント
More informationCOINS..
(0317754) 18 1 4 1.1....................................... 4 1.2..................................... 4 1.3..................................... 5 2 6 2.1 COINS................................ 6 2.1.1...................................
More informationRX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM
R01AN0724JU0170 Rev.1.70 MCU EEPROM RX MCU 1 RX MCU EEPROM VEE VEE API MCU MCU API RX621 RX62N RX62T RX62G RX630 RX631 RX63N RX63T RX210 R01AN0724JU0170 Rev.1.70 Page 1 of 33 1.... 3 1.1... 3 1.2... 3
More informationlexex.dvi
(2018, c ) http://istksckwanseiacjp/ ishiura/cpl/ 4 41 1 mini-c lexc,, 2 testlexc, lexc mini-c 1 ( ) mini-c ( ) (int, char, if, else, while, return 6 ) ( ) (+, -, *, /, %, &, =, ==,!=, >, >=,
More informationfp.gby
1 1 2 2 3 2 4 5 6 7 8 9 10 11 Haskell 12 13 Haskell 14 15 ( ) 16 ) 30 17 static 18 (IORef) 19 20 OK NG 21 Haskell (+) :: Num a => a -> a -> a sort :: Ord a => [a] -> [a] delete :: Eq a => a -> [a] -> [a]
More informationex01.dvi
,. 0. 0.0. C () /******************************* * $Id: ex_0_0.c,v.2 2006-04-0 3:37:00+09 naito Exp $ * * 0. 0.0 *******************************/ #include int main(int argc, char **argv) double
More informationJava演習(4) -- 変数と型 --
50 20 20 5 (20, 20) O 50 100 150 200 250 300 350 x (reserved 50 100 y 50 20 20 5 (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics; (reserved public class Blocks1 extends
More informationMicrosoft Word - C.....u.K...doc
C uwêííôöðöõ Ð C ÔÖÐÖÕ ÐÊÉÌÊ C ÔÖÐÖÕÊ C ÔÖÐÖÕÊ Ç Ê Æ ~ if eíè ~ for ÒÑÒ ÌÆÊÉÉÊ ~ switch ÉeÍÈ ~ while ÒÑÒ ÊÍÍÔÖÐÖÕÊ ~ 1 C ÔÖÐÖÕ ÐÊÉÌÊ uê~ ÏÒÏÑ Ð ÓÏÖ CUI Ô ÑÊ ÏÒÏÑ ÔÖÐÖÕÎ d ÈÍÉÇÊ ÆÒ Ö ÒÐÑÒ ÊÔÎÏÖÎ d ÉÇÍÊ
More informationex01.dvi
,. 0. 0.0. C () /******************************* * $Id: ex_0_0.c,v.2 2006-04-0 3:37:00+09 naito Exp $ * * 0. 0.0 *******************************/ #include int main(int argc, char **argv) { double
More informationyacc.dvi
2017 c 8 Yacc Mini-C C/C++, yacc, Mini-C, run,, Mini-C 81 Yacc Yacc, 1, 2 ( ), while ::= "while" "(" ")" while yacc 1: st while : lex KW WHILE lex LPAREN expression lex RPAREN statement 2: 3: $$ = new
More information導入基礎演習.ppt
Multi-paradigm Programming Functional Programming Scheme Haskell ML Scala X10 KL1 Prolog Declarative Lang. C Procedural Lang. Java C++ Python Object-oriented Programming / (root) bin home lib 08 09
More informationprogram.dvi
2001.06.19 1 programming semi ver.1.0 2001.06.19 1 GA SA 2 A 2.1 valuename = value value name = valuename # ; Fig. 1 #-----GA parameter popsize = 200 mutation rate = 0.01 crossover rate = 1.0 generation
More information新コンフィギュレータのフレームワークについて
: 2007 12 7 6: 2009 5 9 TOPPERS 1.... 4 1.1... 4 1.2 TOPPERS... 4 2.... 4 2.1... 4 3.... 8 4.... 9 4.1... 9 4.2... 10 4.3... 10 4.3.1... 11 4.3.2 INCLUDE... 11 4.3.3 C... 12 4.4 API... 14 4.2.1 API...
More information1 Code Generation Part I Chapter 8 (1 st ed. Ch.9) COP5621 Compiler Construction Copyright Robert van Engelen, Florida State University,
1 Code Generation Part I Chapter 8 (1 st ed. Ch.9) COP5621 Compiler Construction Copyright Robert van Engelen, Florida State University, 2007-2013 2 Position of a Code Generator in the Compiler Model Source
More informationBW BW
Induced Sorting BW 11T2042B 2015 3 23 1 1 1.1................................ 1 1.2................................... 1 2 BW 1 2.1..................................... 2 2.2 BW.................................
More information1.1 1 C IIA $ cd comp3a %endminipage ~/comp3a mkdir $ mkdir comp3a $ cd comp3a C.c Emacs Cntrol x Control s 2 Emacs Control-x Control-f Control-
1 C IIA 1 C IIA IIA 1.1 Mac OS X 1.1.1 Mac OS X Unicode(UTF-8) UTF-8 Jedit X( ) Emacs( ) Emacs Emacs Emacs [Finder] [] Emacs dock Jedit X C 1. Jedit X Dock drag & drop Jedit X [Finder] [] Jedit X Folder
More informationII ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D
II 8 2003 11 12 1 6 ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 Daisuke 8 =>. 73 Daisuke 35 Hiroshi 64 Ichiro 87 Junko
More informationSystemC 2.0を用いた簡易CPUバスモデルの設計
SystemC 2.0 CPU CPU CTD&SW CT-PF 2002/1/23 1 CPU BCA UTF GenericCPU IO (sc_main) 2002/1/23 2 CPU CPU CQ 1997 11 Page 207 4 Perl Verilog-HDL CPU / Verilog-HDL SystemC 2.0 (asm) ROM (test.hex) 2002/1/23
More informationやさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF
pref : 2004/6/5 (11:8) pref : 2004/6/5 (11:8) pref : 2004/6/5 (11:8) 3 5 14 18 21 23 23 24 28 29 29 31 32 34 35 35 36 38 40 44 44 45 46 49 49 50 pref : 2004/6/5 (11:8) 50 51 52 54 55 56 57 58 59 60 61
More information2006 [3] Scratch Squeak PEN [4] PenFlowchart 2 3 PenFlowchart 4 PenFlowchart PEN xdncl PEN [5] PEN xdncl DNCL 1 1 [6] 1 PEN Fig. 1 The PEN
PenFlowchart 1,a) 2,b) 3,c) 2015 3 4 2015 5 12, 2015 9 5 PEN & PenFlowchart PEN Evaluation of the Effectiveness of Programming Education with Flowcharts Using PenFlowchart Wataru Nakanishi 1,a) Takeo Tatsumi
More informationI117 II I117 PROGRAMMING PRACTICE II SOFTWARE DEVELOPMENT ENV. 1 Research Center for Advanced Computing Infrastructure (RCACI) / Yasuhiro Ohara
I117 II I117 PROGRAMMING PRACTICE II SOFTWARE DEVELOPMENT ENV. 1 Research Center for Advanced Computing Infrastructure (RCACI) / Yasuhiro Ohara yasu@jaist.ac.jp / SCHEDULE 1. 2011/06/07(Tue) / Basic of
More informationmemo
数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int
More informationuntitled
H8/300,H8S,H8SX [H8S,H8/300 Tool Chain Ver6.2.0.0] #define Inline static inline //************************************************** Inline char sil_and_mem(char *mem,char and) return (*((volatile
More information今日の話 : LLVM のバックエンド Backend = 機械語を出力するモジュール <-> Frontend Pluggable になっている CPU 色々 機械語以外も出力できる binaries are not only output 2
バイナリだけが出力じゃない 2008/08/23 MORITA Hajime http://steps.dodgson.org/ 今日の話 : LLVM のバックエンド Backend = 機械語を出力するモジュール Frontend Pluggable になっている CPU 色々 機械語以外も出力できる binaries are not only output
More information(K&R 2.9) ~, &,, >>, << 2. (K&R 5.7) 3. (K&R 5.9) 4. (K&R 5.10) (argc argv atoi(), atof() ) 5. (K&R 7.5) (K&R 7.6) - FILE, stdin, stdout, std
3 3 1. 1 (K&R.9) ~, &,, >>,
More informationr11.dvi
19 11 ( ) 2019.4.20 1 / 1.1 ( n n O(n 2 O(n 2 ) ( 1 d n 1 n logn O(nlogn n ( n logn C 1.2 ( ( merge 2 1 1 3 1 4 5 4 2 3 7 9 7 1 2 3 4 5 7 9 1: 2 ivec merge int *ivec_new(int size) { int *a = (int*)malloc((size+1)
More informationohp11.dvi
19 11 ( ) 2019.4.20 1 / ( ) n O(n 2 ) O(n 2 ) ( ) 1 d n 1 n logn O(nlogn) n ( n logn C ) 2 ( ) ( merge) 2 1 1 3 1 4 5 4 2 3 7 9 7 1 2 3 4 5 7 9 1: 2 ivec merge 3 ( ) (2) int *ivec_new(int size) { int *a
More information2
Haskell ( ) kazu@iij.ad.jp 1 2 Blub Paul Graham http://practical-scheme.net/trans/beating-the-averages-j.html Blub Blub Blub Blub 3 Haskell Sebastian Sylvan http://www.haskell.org/haskellwiki/why_haskell_matters...
More information( ) ( ) 30 ( ) 27 [1] p LIFO(last in first out, ) (push) (pup) 1
() 2006 2 27 1 10 23 () 30 () 27 [1] p.97252 7 2 2.1 2.1.1 1 LIFO(last in first out, ) (push) (pup) 1 1: 2.1.2 1 List 4-1(p.100) stack[] stack top 1 2 (push) (pop) 1 2 void stack push(double val) val stack
More informationhaskell.gby
Haskell 1 2 3 Haskell ( ) 4 Haskell Lisper 5 Haskell = Haskell 6 Haskell Haskell... 7 qsort [8,2,5,1] [1,2,5,8] "Hello, " ++ "world!" "Hello, world!" 1 + 2 div 8 2 (+) 1 2 8 div 2 3 4 map even [1,2,3,4]
More information1 1.1 C 2 1 double a[ ][ ]; 1 3x x3 ( ) malloc() 2 double *a[ ]; double 1 malloc() dou
1 1.1 C 2 1 double a[ ][ ]; 1 3x3 0 1 3x3 ( ) 0.240 0.143 0.339 0.191 0.341 0.477 0.412 0.003 0.921 1.2 malloc() 2 double *a[ ]; double 1 malloc() double 1 malloc() free() 3 #include #include
More informationC
C 1 2 1.1........................... 2 1.2........................ 2 1.3 make................................................ 3 1.4....................................... 5 1.4.1 strip................................................
More informationex12.dvi
1 0. C, char., char, 0,. C, ("),., char str[]="abc" ; str abc.,, str 4. str 3. char str[10]="abc" ;, str 10, str 3., char s[]="abc", t[10] ;, t = s. ASCII, 0x00 0x7F, char., "abc" 3, 1. 1 8 256, 2., 2
More informationプログラミング言語処理系論 (4) Design and Implementation of Programming Language Processors
プログラミング言語処理系論 Design and Implementation of Programming Language Processors 問題集 佐藤周行 ( 情報基盤センター / 電気系専攻融合情報学コース ) レポート問題 問題 1-14 のうち 任意の 1 題を選択して解答すること 複数解答した場合は 各々採点します 提出締め切りは 7/31 8 月修了を予定している人は 締め切りと採点を早めます
More information1 1.1 C 2 1 double a[ ][ ]; 1 3x x3 ( ) malloc() malloc 2 #include <stdio.h> #include
1 1.1 C 2 1 double a[ ][ ]; 1 3x3 0 1 3x3 ( ) 0.240 0.143 0.339 0.191 0.341 0.477 0.412 0.003 0.921 1.2 malloc() malloc 2 #include #include #include enum LENGTH = 10 ; int
More informationprogrammingII2019-v01
II 2019 2Q A 6/11 6/18 6/25 7/2 7/9 7/16 7/23 B 6/12 6/19 6/24 7/3 7/10 7/17 7/24 x = 0 dv(t) dt = g Z t2 t 1 dv(t) dt dt = Z t2 t 1 gdt g v(t 2 ) = v(t 1 ) + g(t 2 t 1 ) v v(t) x g(t 2 t 1 ) t 1 t 2
More informationPBASIC 2.5 PBASIC 2.5 $PBASIC directive PIN type New DEBUG control characters DEBUGIN Line continuation for comma-delimited lists IF THEN ELSE * SELEC
PBASIC 2.5 PBASIC 2.5 BASIC Stamp Editor / Development System Version 2.0 Beta Release 2 2.0 PBASIC BASIC StampR PBASIC PBASIC PBASIC 2.5 Parallax, Inc. PBASIC 2.5 PBASIC 2.5 support@microbot-ed.com 1
More informationプログラミング言語処理系論 (6) Design and Implementation of Programming Language Processors 佐藤周行 ( 情報基盤センター / 電気系専攻融合情報学コース )
プログラミング言語処理系論 (6) Design and Implementation of Programming Language Processors 佐藤周行 ( 情報基盤センター / 電気系専攻融合情報学コース ) 今日やること Perlの吐き出すコードの観察 関数コールに関係するさまざまな話題 Call by ** Frame Calling Convention Perl の生成するコードを観察する
More informationr02.dvi
172 2017.7.16 1 1.1? X A B A X B ( )? IBMPL/I FACOM PL1 ( ) X ( ) 1.2 1 2-0 ( ) ( ) ( ) (12) ( ) (112) (131) 281 26 1 (syntax) (semantics) ( ) 2 2.1 BNF BNF(Backus Normal Form) Joun Backus (grammer) English
More informationohp02.dvi
172 2017.7.16 1 ? X A B A X B ( )? IBMPL/I FACOM PL1 ( ) X 2 ( ) 3 2-0 ( ) ( ) ( ) (12) ( ) (112) 31) 281 26 1 4 (syntax) (semantics) ( ) 5 BNF BNF(Backus Normal Form) Joun Backus (grammer) English grammer
More informationPC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU
1. 1.1. 1.2. 1 PC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU 2. 2.1. 2 1 2 C a b N: PC BC c 3C ac b 3 4 a F7 b Y c 6 5 a ctrl+f5) 4 2.2. main 2.3. main 2.4. 3 4 5 6 7 printf printf
More information第5回お試しアカウント付き並列プログラミング講習会
qstat -l ID (qstat -f) qscript ID BATCH REQUEST: 253443.batch1 Name: test.sh Owner: uid=32637, gid=30123 Priority: 63 State: 1(RUNNING) Created at: Tue Jun 30 05:36:24 2009 Started at: Tue Jun 30 05:36:27
More information大統一Debian勉強会 gdb+python拡張を使ったデバッグ手法
Debian 2013 gdb+python nozzy@debian.or.jp 2013 6 29 Level Debian Up Debian Debian debian sid unstable Debian debian sid unstable *-dbg Debian debian sid unstable *-dbg gdb Debian debian sid unstable *-dbg
More informationC言語復習
著者 : 大和正武 生成日時 : 20151102-17:59 Copyright 2013 Red Hat, K.K. Copyright 2015 Red Hat, K.K. C 言語復習 The text of and illustrations in this document are licensed by Red Hat under a Creative
More information1 (2 * 3) 1 2 * 3 Preorder In order Post order 1 * 1 * Breadth-first Depth-first * * 3 Preorder: 1 * 2 3 In order: 1 2 * 3 Post orde
5 LL recursive descent LL(1) 2006.05.19 ::= ::= ::=
More informationtest.gby
Beautiful Programming Language and Beautiful Testing 1 Haskeller Haskeller 2 Haskeller (Doctest QuickCheck ) github 3 Haskeller 4 Haskell Platform 2011.4.0.0 Glasgow Haskell Compiler + 23 19 8 5 10 5 Q)
More informationfile:///D|/C言語の擬似クラス.txt
愛知障害者職業能力開発校 システム設計科 修了研究発表会報告書 題名 : C 言語の擬似クラス あらまし : C 言語でクラスを作れるという噂の真偽を確かめるために思考錯誤した まえがき : VC++ や Java その他オブジェクト指向の言語にはクラスが存在して クラスはオブジェクトの設計図である 手法 : C++ のクラスを解析して C++ のクラスを作成して C 言語に翻訳する class struct
More informationPDCA
PDCA / / -- -- -- -- -- -- % % --- --- - No.--- --- --- A B C D + + + + + + + + + A B C D........................ --- OJT PDCA Eliminate Combine ECRS Rearrange Simplify -- - BKC IT BKC BKC APU -- :
More informationXMPによる並列化実装2
2 3 C Fortran Exercise 1 Exercise 2 Serial init.c init.f90 XMP xmp_init.c xmp_init.f90 Serial laplace.c laplace.f90 XMP xmp_laplace.c xmp_laplace.f90 #include int a[10]; program init integer
More informationParametric Polymorphism
ML 2 2011/04/19 Parametric Polymorphism Type Polymorphism ? : val hd_int : int list - > int val hd_bool : bool list - > bool val hd_i_x_b : (int * bool) list - > int * bool etc. let hd_int = function (x
More information£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裶²ó ¨¡ À©¸æ¹½Â¤¡§·«¤êÊÖ¤· ¨¡
(2018) 2018 5 24 ( ) while ( ) do while ( ); for ( ; ; ) while int i = 0; while (i < 100) { printf("i = %3d\n", i); i++; while int i = 0; i while (i < 100) { printf("i = %3d\n", i); i++; while int i =
More informationC B
C 095707B 2010 6 8 1 LEVE1 2 1.1 LEVEL 1.1................................................ 2 1.1.1 1................................................ 2 1.1.2 1.2..............................................
More informationプログラミング言語処理系論 (4) Design and Implementation of Programming Language Processors
プログラミング言語処理系論 (6) Design and Implementation of Programming Language Processors 佐藤周行 ( 情報基盤センター / 電気系専攻融合情報学コース ) 2014-5 の残業から Perl の吐き出すコードをながめてみる Parser Kit 中の vcc6.y をながめてみる 文法定義 パースツリーの格納 実行 fact.pl
More information