sagexx_ug (1158317), страница 5

Файл №1158317 sagexx_ug (Раздаточные материалы) 5 страницаsagexx_ug (1158317) страница 52019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

var.isPerfectLoopNest();getNextLoop();getPreviousLoop();// returns outer nested loopgetInnermostLoop(); // returns innermost nested loopChapter 3: Statements#if 0int43isLinearLoopNest();// TRUE if the bound and step of the loop// in the loop nest are linear expressions// and use the index variables of the previous// loops of the nest.#endifintisEnddoLoop();// TRUE if the loop ends with an EnddointconvertLoop();// Convert the loop into a Good loop.#if 0intisAssignLoop();// TRUE if the body consists only of assignmeintisAssignIfLoop();// TRUE if the body consists only of assigmen//and conditional statements.//high level program transformations.// Most are from SIGMA Toolbox by F.Bodin et al.// Semantics can be found in the above reference.inttiling_p(int i);inttiling(int i, int tab[]);intstripMining(int i);SgStatementdistributeLoop(int i);SgStatementdistributeLoopSCC();SgStatementloopFusion(SgForStmt &loop);SgStatementunrollLoop(int i);intinterchangeLoops(SgForStmt &loop);intinterchangeWithLoop(int i);intnormalized();intNormalizeLoop();intvectorize();intvectorizeNest();intExpandScalar(SgSymbol &symbol, int i);intScalarForwardSubstitution(SgSymbol &symbol);intpullStatementToFront(SgStatement &s);intpullStatementToEnd(SgStatement &s);#endif};SgForStmt is used in the following places in the example programs: see [Restructure - addStuToProgram], page 135see [Instrument - FixLoops], page 143see [Dump Info - doLoopStmts], page 177Member Functions:SgForStmt(SgSymbol &do var, SgExpression &start, SgExpression &end, SgExpression &step,SgStatement &body)Chapter 3: StatementsSgForStmt(SgSymbol *do var,44SgExpression *start, SgExpression *end, SgExpression *step,SgStatement *body)SgForStmt(SgSymbol &do var, SgExpression &start, SgExpression &end, SgStatement &body)SgForStmt(SgExpression &start, SgExpression &end, SgExpression &step, SgStatement &body)SgSymbol doName()void setDoName(SgSymbol &doName)SgExpression * start()void setStart(SgExpression &lbound)SgExpression * end()void setEnd(SgExpression &ubound)SgExpression * step()void setStep(SgExpression &step)SgLabel * endOfLoop()//SgExpression & bounds()//void setBounds(SgTripletOp &bounds)SgStatement * body()void set body(SgStatement &s)int replaceBody(SgStatement &s)int numberOfInductVars()SgSymbol * inductionVar(int i)SgExpression * indVarRange(int i)int isPerfectLoopNest()SgStatement * getNextLoop()SgStatement * getPreviousLoop()SgStatement * getInnermostLoop()int isLinearLoopNest()int isEnddoLoop()Chapter 3: Statements45int convertLoop()int isAssignLoop()int isAssignIfLoop()int tiling p(int i)int tiling(int i, int tab[])int stripMining(int i)SgStatement distributeLoop(int i)SgStatement distributeLoopSCC()SgStatement loopFusion(SgForStmt &loop)SgStatement unrollLoop(int i)int interchangeLoops(SgForStmt &loop)int interchangeWithLoop(int i)int normalized()int NormalizeLoop()int vectorize()int vectorizeNest()int ExpandScalar(SgSymbol &symbol, int i)int ScalarForwardSubstitution(SgSymbol &symbol)int pullStatementToFront(SgStatement &s)int pullStatementToEnd(SgStatement &s)SgDoWhileStmtRepresents C do...while.Represents Fortran dowhile.For base class, see [SgWhileStmt], page 46.Chapter 3: Statements46class SgDoWhileStmt: public SgWhileStmt {// For Fortran dowhile()..

and C do {....) while();// variant = DO_WHILE_NODEpublic:SgDoWhileStmt(SgExpression &cond, SgStatement &body);};Member Functions:// For Fortran dowhile()SgDoWhileStmt(SgExpression &cond, SgStatement &body)SgWhileStmtRepresents C while() .For base class, see Section 3.1 [SgStatement], page 11.class SgWhileStmt: public SgStatement {// for Cwhile()// variant = WHILE_NODEpublic:SgWhileStmt(int variant);SgWhileStmt(SgExpression &cond, SgStatement &body);SgExpression * conditional();// the while test#if 0intnumberOfInductVars(); // 1 if an induction variable can be found.SgSymbol *inductionVar(int i);// i-th induction variableSgExpression * indVarRange(int i); // range of i-th ind. var.#endifvoidreplaceBody(SgStatement &s); // new body = s and lex successors.};SgWhileStmt is used in the following places in the example programs: see [Restructure - addStuToProgram], page 135 see [Dump Info - doLoopStmts], page 177Member Functions:Chapter 3: Statements47// for C while()SgWhileStmt(int variant)SgWhileStmt(SgExpression &cond, SgStatement &body)SgExpression * conditional()int numberOfInductVars()SgSymbol * inductionVar(int i)SgExpression * indVarRange(int i)void replaceBody(SgStatement &s)SgIfStmtRepresents C if.Represents Fortran if...then...else.For base class, see Section 3.1 [SgStatement], page 11.class SgIfStmt: public SgStatement {// For Fortran if then else and C if()// variant == IF_NODEpublic:SgIfStmt(int variant);SgIfStmt(SgExpression &cond,SgStatement &trueBody,SgStatement &falseBody,SgSymbol &construct_name);SgIfStmt(SgExpression &cond,SgStatement &trueBody,SgStatement &falseBody);SgIfStmt(SgExpression &cond,SgStatement &trueBody);SgStatement *trueBody();// the first stmt in the True cla// SgBlock is needed?SgStatement *trueBody(int i); // i-th stmt in True clauseSgStatement *falseBody();// the first stmt in the FalseSgStatement *falseBody(int i);// i-th statement of the body.SgExpression *conditional(); // the while testSgSymbol *construct_name();voidreplaceTrueBody(SgStatement &s);// new body=s andvoidreplaceFalseBody(SgStatement &s);//new body=s andChapter 3: Statements48};SgIfStmt is used in the following places in the example programs: see [Restructure - addStuToProgram], page 135 see [Dump Info - doIfStmts], page 176Member Functions:// For Fortran if then else and C if()SgIfStmt(int variant)SgIfStmt(SgExpression &cond, SgStatement &trueBody,&construct name)SgStatement &falseBody, SgSymbolSgIfStmt(SgExpression &cond, SgStatement &trueBody, SgStatement &falseBody)SgIfStmt(SgExpression &cond, SgStatement &trueBody)SgStatement * trueBody()SgStatement * trueBody(int i)SgStatement * falseBody()SgStatement * falseBody(int i)SgExpression * conditional()SgSymbol * construct name()void replaceTrueBody(SgStatement &s)void replaceFalseBody(SgStatement &s)SgSwitchStmtRepresents C switch.Represents Fortran case.For base class, see Section 3.1 [SgStatement], page 11.Chapter 3: Statements49class SgSwitchStmt: public SgStatement {// Fortran Case and C switch();// variant == SWITCH_NODEpublic:SgSwitchStmt(SgExpression &selector,SgStatement &caseOptionList,SgSymbol &constructName);SgExpression *selector(); // the switch selectorvoidsetSelector(SgExpression &cond);intnumberOfCaseOptions();// the number of casesSgStatement *caseOption(int i); // i-th case blockvoidaddCaseOption(SgStatement &caseOption);#if 0voiddeleteCaseOption(int i);#endif};Member Functions:// Fortran Case and C switch()SgSwitchStmt(SgExpression &selector,Name)SgStatement &caseOptionList, SgSymbol &construct-SgExpression * selector()void setSelector(SgExpression &cond)int numberOfCaseOptions()SgStatement * caseOption(int i)void addCaseOption(SgStatement &caseOption)void deleteCaseOption(int i)SgLogIfStmtRepresents Fortran logical if.For base class, see Section 3.1 [SgStatement], page 11.class SgLogIfStmt: public SgStatement {// For Fortran logical if - only one body statement allowed// variant == LOGIF_NODEChapter 3: Statementspublic:50SgLogIfStmt(int variant);SgLogIfStmt(SgExpression &cond, SgStatement &s);SgStatement * body(); // returns reference to first stmt in the bodySgExpression * conditional(); // the while test// check if the statement s is a single statement.voidsetBody(SgStatement &s); // new body = s// this code won't work, since after the addition false//clause, it should become SgIfThenElse statement.voidaddFalseClause(SgStatement &s); // make it into if-then-elseSgIfStmt *convertLogicIf();};SgLogIfStmt is used in the following places in the example programs: see [Dump Info - doIfStmts], page 176Member Functions:SgLogIfStmt(int variant)SgLogIfStmt(SgExpression &cond, SgStatement &s)SgStatement * body()SgExpression * conditional()void setBody(SgStatement &s)void addFalseClause(SgStatement &s)SgIfStmt * convertLogicIf()SgIfElseIfStmtRepresents Fortran if...then...elseif...elseif.For base class, see [SgIfStmt], page 47.class SgIfElseIfStmt: public SgIfStmt {#if 0// For Fortran if then elseif ..

elseif ... case// variant == ELSEIF_NODEChapter 3: Statements51public:SgIfElseIfStmt(SgExpression &condList, SgStatement &blockList,SgSymbol &constructName);intnumberOfConditionals();// the number of conditionalsSgStatement * body(int b);// block bvoidsetBody(int b);// sets blockSgExpression * conditional(int i); // the i-th conditionalvoidsetConditional(int i);// sets the i-th conditionalvoidaddClause(SgExpression &cond, SgStatement &block);voidremoveClause(int b);// removes block b and it's conditional};Member Functions:SgIfElseIfStmt(SgExpression &condList, SgStatement &blockList, SgSymbol &constructName)int numberOfConditionals()SgStatement * body(int b)void setBody(int b)SgExpression * conditional(int i)void setConditional(int i)void addClause(SgExpression &cond, SgStatement &block)void removeClause(int b)SgArithIfStmtRepresents Fortran arithmentic if.For base class, see Section 3.1 [SgStatement], page 11.class SgArithIfStmt: public SgStatement {// For Fortran Arithementic if// variant == ARITHIF_NODEChapter 3: Statementspublic:52SgArithIfStmt(int variant);SgArithIfStmt(SgExpression &cond, SgLabel &llabel,SgLabel &elabel, SgLabel &glabel);SgExpression * conditional();voidset_conditional(SgExpression &cond);SgExpression * label(int i); // the <, ==, and > goto labels.

in order 0->2.voidsetLabel(SgLabel &label);};SgArithIfStmt is used in the following places in the example programs: see [Dump Info - doIfStmts], page 176Member Functions:SgArithIfStmt(int variant)SgArithIfStmt(SgExpression &cond, SgLabel &llabel, SgLabel &elabel, SgLabel &glabel)SgExpression * conditional()void set conditional(SgExpression &cond)SgExpression * label(int i)void setLabel(SgLabel &label)SgWhereStmtRepresents Fortran where.For base class, see [SgLogIfStmt], page 49.class SgWhereStmt: public SgLogIfStmt {// fortran Where stmt// variant == WHERE_NODEpublic:SgWhereStmt(SgExpression &cond, SgStatement &body);};Member Functions:Chapter 3: Statements53SgWhereStmt(SgExpression &cond, SgStatement &body)SgWhereBlockStmtRepresents Fortran where...elsewhere.For base class, see [SgIfStmt], page 47.class SgWhereBlockStmt: public SgIfStmt {// fortran Where - Elsewhere stmt// variant == WHERE_BLOCK_STMTpublic:SgWhereBlockStmt(SgExpression &cond, SgStatement &trueBody,SgStatement &falseBody);};Member Functions:SgWhereBlockStmt(SgExpression &cond, SgStatement &trueBody, SgStatement &falseBody)SgCaseOptionStmtRepresents case option statement.For base class, see Section 3.1 [SgStatement], page 11.class SgCaseOptionStmt: public SgStatement {// Fortran case option statement// variant == CASE_NODEpublic:SgCaseOptionStmt(SgExpression &caseRangeList,SgStatement &body, SgSymbol &constructName);SgExpression *voidSgExpression *voidSgStatement *voidcaseRangeList();setCaseRangeList(SgExpression &caseRangeList);caseRange(int i);setCaseRange(int i, SgExpression &caseRange);body();setBody(SgStatement &body);Chapter 3: Statements54};Member Functions:SgCaseOptionStmt(SgExpression &caseRangeList, SgStatement &body, SgSymbol &construct-Name)SgExpression * caseRangeList()void setCaseRangeList(SgExpression &caseRangeList)SgExpression * caseRange(int i)void setCaseRange(int i, SgExpression &caseRange)SgStatement * body()void setBody(SgStatement &body)3.5 Executable and Other StatementsSgExecutableStatementFor base class, see Section 3.1 [SgStatement], page 11.class SgExecutableStatement: public SgStatement {// this is really a non-control, non-declaration stmt.// no special functions here.public:SgExecutableStatement(int variant);};Member Functions:SgExecutableStatement(int variant)Chapter 3: StatementsSgContinueStmtRepresents continue, for all languages.For base class, see [SgExecutableStatement], page 54.class SgContinueStmt: public SgExecutableStatement {// variant == CONT_STAT in Fortran and// variant == CONTINUE_NODE in Cpublic:SgContinueStmt();};Member Functions:SgContinueStmt()SgControlEndStmtRepresents ends of basic blocks, for all languages.For base class, see [SgExecutableStatement], page 54.class SgControlEndStmt: public SgExecutableStatement {// the end of a basic block// variant == CONTROL_ENDpublic:SgControlEndStmt(int variant);SgControlEndStmt();};SgControlEndStmt is used in the following places in the example programs: see [Expand Syntax - ReplaceWithGetElemPart], page 163Member Functions:SgControlEndStmt(int variant)55Chapter 3: StatementsSgControlEndStmt()SgReturnStmtRepresents return statements, for all languages.For base class, see [SgExecutableStatement], page 54.class SgReturnStmt: public SgExecutableStatement {// the return (expr) node// variant == RETURN_NODE//RETURN_STATpublic:SgReturnStmt(SgExpression &returnValue);SgReturnStmt();SgExpression * returnValue();voidsetReturnValue(SgExpression &retVal);};SgReturnStmt is used in the following places in the example programs: see [Restructure - addStuToProgram], page 135Member Functions:SgReturnStmt(SgExpression &returnValue)SgReturnStmt()SgExpression * returnValue()void setReturnValue(SgExpression &retVal)SgGotoStmtRepresents goto, for all languages.For base class, see [SgExecutableStatement], page 54.56Chapter 3: Statementsclass SgGotoStmt: public SgExecutableStatement {// the fortran or C goto// variant == GOTO_NODEpublic:SgGotoStmt(SgLabel &label);SgLabel *branchLabel();#if 0SgStatement * target(); //the statement we go to#endif};SgGotoStmt is used in the following places in the example programs: see [Dump Info - doGoToStmt], page 178Member Functions:SgGotoStmt(SgLabel &label)SgLabel * branchLabel()SgStatement * target()SgCExpStmtRepresents C expression statements.For usage, see [SgExpression Usage], page 74.For base class, see [SgExecutableStatement], page 54.class SgCExpStmt: public SgExecutableStatement {// C non-control expression Statment// variant == EXPR_STMT_NODEpublic:SgCExpStmt(SgExpression &exp);SgCExpStmt(SgExpression &lhs, SgExpression &rhs);SgExpression * expr(); // the expressionvoidreplaceExpression(SgExpression &e); // replace exp with e};SgCExpStmt is used in the following places in the example programs:57Chapter 3: Statementssee [Instrument - InsertCCallNode], page 155see [Expand Syntax - ReplaceWithGetElemPart], page 163Member Functions:SgCExpStmt(SgExpression &exp)SgCExpStmt(SgExpression &lhs, SgExpression &rhs)SgExpression * expr()void replaceExpression(SgExpression &e)SgBreakStmtRepresents C break.For base class, see [SgExecutableStatement], page 54.class SgBreakStmt: public SgExecutableStatement {// C break stmt -jkg// variant == BREAK_NODEpublic:SgBreakStmt();};Member Functions:SgBreakStmt()SgAssignStmtRepresents Fortran assignment statements.For base class, see [SgExecutableStatement], page 54.58Chapter 3: Statementsclass SgAssignStmt: public SgExecutableStatement// Fortran assignment Statment// variant == ASSIGN_STATpublic:SgAssignStmt(int variant);SgAssignStmt(SgExpression &lhs,SgExpression * lhs(); // the left hand sideSgExpression * rhs(); // the right hand sidevoidreplaceLhs(SgExpression &e); //voidreplaceRhs(SgExpression &e); //#if 0SgExpression * varReferenced();SgExpression * varUsed();SgExpression * varDefined();#endif};59{SgExpression &rhs);replace lhs with ereplace rhs with eSgAssignStmt is used in the following places in the example programs: see [Restructure - addStuToProgram], page 135 see [Dump Info - classifyStatements], page 170Member Functions:SgAssignStmt(int variant)SgAssignStmt(SgExpression &lhs, SgExpression &rhs)SgExpression * lhs()SgExpression * rhs()void replaceLhs(SgExpression &e)void replaceRhs(SgExpression &e)SgExpression * varReferenced()SgExpression * varUsed()SgExpression * varDened()SgPointerAssignStmtRepresents Fortran pointer assignment statements.Chapter 3: StatementsFor base class, see [SgAssignStmt], page 58.class SgPointerAssignStmt: public SgAssignStmt {// Fortran pointer assignment statement// variant == POINTER_ASSIGN_STATpublic:SgPointerAssignStmt(SgExpression lhs, SgExpression rhs);};Member Functions:SgPointerAssignStmt(SgExpression lhs, SgExpression rhs)SgHeapStmtRepresents Fortran allocate and deallocate.For base class, see [SgExecutableStatement], page 54.class SgHeapStmt: public SgExecutableStatement {// Fortran heap space allocation and deallocation statements// variant == ALLOCATE_STMT or DEALLOCATE_STMTpublic:SgHeapStmt(int variant, SgExpression &allocationList,SgExpression &statVariable);SgExpression * allocationList();voidsetAllocationList(SgExpression &allocationList);SgExpression * statVariable();voidsetStatVariable(SgExpression &statVar);};Member Functions:SgHeapStmt(int variant, SgExpression &allocationList, SgExpression &statVariable)SgExpression * allocationList()void setAllocationList(SgExpression &allocationList)60Chapter 3: StatementsSgExpression * statVariable()void setStatVariable(SgExpression &statVar)SgNullifyStmtRepresents Fortran pointer initialization statement.For base class, see [SgExecutableStatement], page 54.class SgNullifyStmt: public SgExecutableStatement {// Fortran pointer initialization statement// variant == NULLIFY_STMTpublic:SgNullifyStmt(SgExpression &objectList);SgExpression * nullifyList();voidsetNullifyList(SgExpression &nullifyList);};Member Functions:SgNullifyStmt(SgExpression &objectList)SgExpression * nullifyList()void setNullifyList(SgExpression &nullifyList)SgLabelListStmtRepresents Fortran statements containing lists of labels.For base class, see [SgExecutableStatement], page 54.class SgLabelListStmt: public SgExecutableStatement {// the fortran// statements containg a list of labels61Chapter 3: Statementspublic:intSgExpression *void#if 0SgStatement *#endif};62SgLabelListStmt(int variant);numberOfTargets();labelList();setLabelList(SgExpression &labelList);target(int i); //the statement we go toMember Functions:SgLabelListStmt(int variant)int numberOfTargets()SgExpression * labelList()void setLabelList(SgExpression &labelList)SgStatement * target(int i)SgAssignedGotoStmtRepresents Fortran assigned goto statement.For base class, see [SgLabelListStmt], page 61.class SgAssignedGotoStmt: public SgLabelListStmt {// the fortran// variant == ASSGOTO_NODEpublic:SgAssignedGotoStmt(SgSymbol &symbol, SgExpression &labelList);SgSymbol * symbol();voidsetSymbol(SgSymbol &symb);};SgAssignedGotoStmt is used in the following places in the example programs: see [Dump Info - doGoToStmt], page 178Chapter 3: StatementsMember Functions:SgAssignedGotoStmt(SgSymbol &symbol, SgExpression &labelList)SgSymbol * symbol()void setSymbol(SgSymbol &symb)SgComputedGotoStmtRepresents Fortran computed goto statement.For base class, see [SgLabelListStmt], page 61.class SgComputedGotoStmt: public SgLabelListStmt {// the fortran goto// variant == COMGOTO_NODEpublic:SgComputedGotoStmt(SgExpression &expr, SgLabel &label);voidaddLabel(SgLabel &label);SgExpression * exp();voidsetExp(SgExpression &exp);};SgComputedGotoStmt is used in the following places in the example programs: see [Dump Info - doGoToStmt], page 178Member Functions:SgComputedGotoStmt(SgExpression &expr, SgLabel &label)void addLabel(SgLabel &label)SgExpression * exp()void setExp(SgExpression &exp)63Chapter 3: StatementsSgStopOrPauseStmtRepresents Fortran stop statement.For base class, see [SgExecutableStatement], page 54.class SgStopOrPauseStmt: public SgExecutableStatement {// the fortran stop// variant == STOP_STATpublic:SgStopOrPauseStmt(int variant, SgExpression &expr);SgExpression * exp();voidsetExp(SgExpression &exp);};Member Functions:SgStopOrPauseStmt(int variant, SgExpression &expr)SgExpression * exp()void setExp(SgExpression &exp)SgCallStmtRepresents Fortran call statement.For base class, see [SgExecutableStatement], page 54.class SgCallStmt: public SgExecutableStatement {// the fortran call// variant == PROC_STATpublic:SgCallStmt(SgSymbol &name, SgExpression &args);SgCallStmt(SgSymbol &name);SgSymbol *name();// name of subroutine being calledintnumberOfArgs(); // the number of arguement expressionsvoidaddArg(SgExpression &arg);SgExpression * arg(int i); // the i-th argument expression64Chapter 3: Statements#if 0// global analysis functionsintnumberOfVarsUsed();SgExpression * varsUsed(int i); // i-th region descriptionintnumberOfVarsMod();SgExpression * varsMod(int i); // i-th region description#endif};SgCallStmt is used in the following places in the example programs: see [Restructure - addStuToProgram], page 135 see [Instrument - InsertFCallNode], page 142 see [Dump Info - classifyStatements], page 170Member Functions:SgCallStmt(SgSymbol &name, SgExpression &args)SgCallStmt(SgSymbol &name)SgSymbol * name()int numberOfArgs()void addArg(SgExpression &arg)SgExpression * arg(int i)int numberOfVarsUsed()SgExpression * varsUsed(int i)int numberOfVarsMod()SgExpression * varsMod(int i)SgIOStmtFor base class, see [SgExecutableStatement], page 54.65Chapter 3: Statementsclass SgIOStmt: public SgExecutableStatement {// fortran input/output and their control statements// abstract classpublic:SgIOStmt(int variant);};SgIOStmt is used in the following places in the example programs: see [Dump Info - doIOStmts], page 178Member Functions:SgIOStmt(int variant)SgInputOutputStmtRepresents Fortran read, write, and print.For base class, see [SgIOStmt], page 65.class SgInputOutputStmt: public SgIOStmt {// fortran input and output statements// variant = READ_STAT, WRITE_STATE, PRINT_STATpublic:SgInputOutputStmt(int variant, SgExpression &specList,SgExpression &itemList);SgExpression * specList();voidsetSpecList(SgExpression &specList);SgExpression * itemList();voidsetItemList(SgExpression &itemList);};SgInputOutputStmt is used in the following places in the example programs: see [Dump Info - doIOStmts], page 178Member Functions:SgInputOutputStmt(int variant, SgExpression &specList, SgExpression &itemList)66Chapter 3: StatementsSgExpression * specList()void setSpecList(SgExpression &specList)SgExpression * itemList()void setItemList(SgExpression &itemList)SgIOControlStmtRepresents Fortran open, close, inquire, backspace, rewind, endle, and format.For base class, see [SgExecutableStatement], page 54.class SgIOControlStmt: public SgExecutableStatement {// fortran input/output control and editing statements// variant = OPEN_STAT, CLOSE_STAT, INQUIRE_STAT, BACKSPACE_STAT,// REWIND_STAT, ENDFILE_STAT, FORMAT_STATpublic:SgIOControlStmt(int variant,SgExpression &controlSpecifierList);SgExpression * controlSpecList();voidsetControlSpecList(SgExpression &controlSpecList);};SgIOControlStmt is used in the following places in the example programs: see [Dump Info - doIOStmts], page 178Member Functions:SgIOControlStmt(int variant, SgExpression &controlSpecierList)SgExpression * controlSpecList()void setControlSpecList(SgExpression &controlSpecList)67Chapter 3: StatementsSgCycleStmtRepresents Fortran 90 cycle statements.For base class, see [SgExecutableStatement], page 54.class SgCycleStmt: public SgExecutableStatement {// the fortran 90 cycle statement// variant == CYCLE_STMTpublic:SgCycleStmt(SgSymbol &symbol);SgSymbol * constructName(); // the name of the loop to cyclevoidsetConstructName(SgSymbol &constructName);};Member Functions:SgCycleStmt(SgSymbol &symbol)SgSymbol * constructName()void setConstructName(SgSymbol &constructName)SgExitStmtRepresents Fortran 90 exit statements.For base class, see [SgControlEndStmt], page 55.class SgExitStmt: public SgControlEndStmt {// the fortran 90 exit statement// variant == EXIT_STMTpublic:SgExitStmt(SgSymbol &construct_name);SgSymbol * constructName(); // the name of the loop to cyclevoidsetConstructName(SgSymbol &constructName);};Member Functions:68Chapter 3: StatementsSgExitStmt(SgSymbol &construct name)SgSymbol * constructName()void setConstructName(SgSymbol &constructName)69Chapter 4: Expressions704 ExpressionsMany statements contain expressions.

Характеристики

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6529
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее