using pdf.js in mvc : Convert pdf picture to jpg control SDK platform web page wpf asp.net web browser GrGenNET-Manual1-part1908

xi
10.6 NodeMerging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
10.7 EdgeRedirection . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
10.8 AttributeInitialization. . . . . . . . . . . . . . . . . . . . . . . . .121
11
EmbeddedSequencesandTextualOutput
123
11.1 ExecandEmitinRules . . . . . . . . . . . . . . . . . . . . . . . .123
11.2 DeferredExecandEmithereinNestedandSubpatterns . . . . . . . . .124
12
Computations(AttributeEvaluationStatements)
127
12.1 Assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
12.2 LocalVariableDeclarations. . . . . . . . . . . . . . . . . . . . . . .129
12.3 Control ow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
12.4 EmbeddedExec . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
12.5 ComputationDenitionandCall. . . . . . . . . . . . . . . . . . . . .133
12.5.1 FunctionDenitionandCall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
12.5.2 ProcedureDenitionAndCall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
12.6 TheBigPicture . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141
13
ContainerTypesandComputations
147
13.1 Built-InTypesandConceptofContainers . . . . . . . . . . . . . . . . .147
13.2 SetOperations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
13.3 MapOperations . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
13.4 ArrayOperations. . . . . . . . . . . . . . . . . . . . . . . . . . . .153
13.5 DequeOperations. . . . . . . . . . . . . . . . . . . . . . . . . . . .157
13.6 StorageAccessintheRules. . . . . . . . . . . . . . . . . . . . . . .160
13.7 Hintsoncontainerusage . . . . . . . . . . . . . . . . . . . . . . . .161
14
GraphTypeandComputations
163
14.1 Built-InTypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
14.2 GraphFunctionsAndProcedures . . . . . . . . . . . . . . . . . . . .163
14.2.1 GraphUpdates/BasicGraphManipulation . . . . . . . . . . . . . . . . . . . . . . 163
14.2.2 GraphQuerybyTypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
14.2.3 GraphQuerybyNeighbourhood . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
14.3 SubgraphOperations . . . . . . . . . . . . . . . . . . . . . . . . .172
14.4 FileOperations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
14.5 Graphcomparison . . . . . . . . . . . . . . . . . . . . . . . . . . .174
14.6 VisitedFlags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177
14.7 GraphProcessingEnvironmentProcedures. . . . . . . . . . . . . . . . .179
14.7.1 TransactionHandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
14.7.2 Misc.GlobalProcedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
15
FilteringandSortingofMatches
181
15.1 FilterFunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
15.2 Auto-GeneratedFilters . . . . . . . . . . . . . . . . . . . . . . . .183
15.3 Auto-SuppliedFilters . . . . . . . . . . . . . . . . . . . . . . . . .184
15.4 Filtercalls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
16
AdvancedModelling(Object-OrientedandGraph-OrientedProgramming)
187
16.1 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188
16.1.1 FunctionMethodDenitionandCall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
16.1.2 ProcedureMethodDenitionAndCall . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Convert pdf picture to jpg - Convert PDF to JPEG images in C#.net, ASP.NET MVC, WinForms, WPF project
How to convert PDF to JPEG using C#.NET PDF to JPEG conversion / converter library control SDK
change pdf to jpg online; change pdf to jpg image
Convert pdf picture to jpg - VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.net, ASP.NET MVC, WinForms, WPF project
Online Tutorial for PDF to JPEG (JPG) Conversion in VB.NET Image Application
best convert pdf to jpg; changing pdf to jpg on
xii
16.2 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
16.2.1 PackageDenitionintheModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
16.2.2 PackageDenitionintheActions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
16.3 GraphNesting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
17
SequenceComputations
197
17.1 SequenceStatements . . . . . . . . . . . . . . . . . . . . . . . . .197
17.2 SequenceExpression. . . . . . . . . . . . . . . . . . . . . . . . . .200
17.3 GraphandSubgraphBasedQueriesandUpdates . . . . . . . . . . . . . .203
17.4 StorageHandlingintheSequences . . . . . . . . . . . . . . . . . . . .205
17.5 QuickReferenceTable. . . . . . . . . . . . . . . . . . . . . . . . .207
18
AdvancedControlwithBacktracking
209
18.1 SequenceDenitions(ProceduralAbstraction) . . . . . . . . . . . . . . .209
18.2 Transactions,Backtracking,andPauseInsertions . . . . . . . . . . . . . .210
18.3 ForLoopsandIndeterministicChoice. . . . . . . . . . . . . . . . . . .213
18.4 QuickReferenceTable. . . . . . . . . . . . . . . . . . . . . . . . .215
19
TransformationTechniques
217
19.1 MergeandSplitNodes. . . . . . . . . . . . . . . . . . . . . . . . .218
19.2 NodeReplacementGrammars. . . . . . . . . . . . . . . . . . . . . .222
19.3 MappinginaRewritingTool . . . . . . . . . . . . . . . . . . . . . .224
19.4 ComparingStructures . . . . . . . . . . . . . . . . . . . . . . . . .225
19.5 CopyingStructures . . . . . . . . . . . . . . . . . . . . . . . . . .227
19.5.1 Built-InGraphCopying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
19.6 DataFlowAnalysisforComputingReachability . . . . . . . . . . . . . .229
19.7 StateSpaceEnumeration. . . . . . . . . . . . . . . . . . . . . . . .234
20
GrShellLanguage
237
20.1 BuildingBlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . .237
20.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
20.3 CommonandFileSystemCommands. . . . . . . . . . . . . . . . . . .239
20.4 GraphCreation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
20.5 AttributeAssignmentandGraphManipulation. . . . . . . . . . . . . . .244
20.6 GraphInputandOutput. . . . . . . . . . . . . . . . . . . . . . . .246
20.7 GraphChangeRecordingandReplaying. . . . . . . . . . . . . . . . . .249
20.8 ShellandEnvironmentConguration. . . . . . . . . . . . . . . . . . .250
20.9 CompilationConguration . . . . . . . . . . . . . . . . . . . . . . .250
20.10ModelandGraphQueries . . . . . . . . . . . . . . . . . . . . . . .251
20.11ValidationCommands . . . . . . . . . . . . . . . . . . . . . . . . .253
20.12SequenceExecutionandProles. . . . . . . . . . . . . . . . . . . . .255
20.13Backend,Graph,andActionsSelection . . . . . . . . . . . . . . . . . .255
20.14LGSPBackendCustomCommands. . . . . . . . . . . . . . . . . . . .257
21
VisualizationandDebugging
259
21.1 GraphVisualizationCommands(NestedLayout) . . . . . . . . . . . . . .259
21.2 yCompUsage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268
21.3 DebuggingRelatedCommands . . . . . . . . . . . . . . . . . . . . .268
21.4 UsingtheDebugger . . . . . . . . . . . . . . . . . . . . . . . . . . .269
21.5 SubruleDebuggingandProgrammedHalts. . . . . . . . . . . . . . . . .273
21.6 Watchpointconguration. . . . . . . . . . . . . . . . . . . . . . . .274
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Jpg, Png, Gif, Bmp, Tiff and other bitmap images. Powerful .NET PDF image edit control, enable users to insert vector images to PDF file. Import graphic picture
convert multipage pdf to jpg; changing pdf to jpg
VB.NET Image: Visual Basic .NET Guide to Draw Text on Image in .
for drawing text on a local picture with Visual Dim LoadImage As New Bitmap("C:\1. jpg") Dim Text As powerful & profession imaging controls, PDF document, image
convert pdf image to jpg online; convert pdf image to jpg image
xiii
22
IndicesandPerformanceOptimization
277
22.1 SearchPlans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
22.2 Find,Don’tSearch . . . . . . . . . . . . . . . . . . . . . . . . . .279
22.2.1 TypeIndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
22.2.2 NeighbourhoodIndices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
22.2.3 TheCosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
22.2.4 ConsequencesForOptimization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
22.2.5 SearchPlanningOnRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
22.2.6 AttributeIndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
22.2.7 IncidenceCountIndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
22.2.8 NameIndex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
22.2.9 UniquenessIndex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
22.3 Locationpassingandmemorization. . . . . . . . . . . . . . . . . . . .293
22.4 ProleandParallelize . . . . . . . . . . . . . . . . . . . . . . . . .294
22.5 CompilationandStaticKnowledge. . . . . . . . . . . . . . . . . . . .295
22.6 MiscellaneousThings . . . . . . . . . . . . . . . . . . . . . . . . .296
23
Examples
305
23.1 Fractals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305
23.2 BusyBeaver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307
23.2.1 GraphModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
23.2.2 RuleSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
23.2.3 RuleExecutionwithGrShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
24
ApplicationProgrammingInterface
313
24.1 InterfacetotheHostGraph. . . . . . . . . . . . . . . . . . . . . . .314
24.2 InterfacetotheRules . . . . . . . . . . . . . . . . . . . . . . . . .314
24.3 InterfaceoftheGraphProcessingEnvironment . . . . . . . . . . . . . . .317
24.4 Import/ExportandMiscellaneousStu . . . . . . . . . . . . . . . . . .318
24.5 ExternalClass,FunctionandProcedureImplementation . . . . . . . . .322
24.6 ExternalFilterandSequenceImplementation. . . . . . . . . . . . . . . .323
24.7 GraphEvents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
24.8 ActionEvents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
25
Extensions
329
25.1 ExternalAttributeTypes. . . . . . . . . . . . . . . . . . . . . . . .329
25.2 ExternalFunctionTypes. . . . . . . . . . . . . . . . . . . . . . . .330
25.3 ExternalProcedureTypes . . . . . . . . . . . . . . . . . . . . . . .330
25.4 ExternalFilterFunctions. . . . . . . . . . . . . . . . . . . . . . . .331
25.5 ExternalSequences . . . . . . . . . . . . . . . . . . . . . . . . . .331
25.6 ExternalEmittingandParsing . . . . . . . . . . . . . . . . . . . . .331
25.7 ExternalCloningandComparison . . . . . . . . . . . . . . . . . . . .332
25.8 ShellCommands . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332
25.9 ShellandCompilerParameters . . . . . . . . . . . . . . . . . . . . .332
25.10Annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
26
UnderstandingandExtendingGrGen.NET
335
26.1 HowtoBuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335
26.2 TheGeneratedCode . . . . . . . . . . . . . . . . . . . . . . . . .336
26.3 SearchPlanninginCodeGeneration . . . . . . . . . . . . . . . . . . .347
VB.NET Image: VB.NET Planet Barcode Generator for Image, Picture &
and a document file (supported files are PDF, Word & barcode image format as you need, including JPG, GIF, BMP Generate Planet Barcode on Picture & Image in VB
convert pdf to jpg batch; to jpeg
VB.NET Image: How to Save Image & Print Image Using VB.NET
printing multi-page document files, like PDF and Word VB.NET Method to Save Image / Picture. different image encoders, including tif encoder, jpg encoder, png
best pdf to jpg converter online; convert multiple page pdf to jpg
xiv
26.4 TheCodeGenerator. . . . . . . . . . . . . . . . . . . . . . . . . . .350
26.4.1 Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
26.4.2 Backend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
27
DevelopmentGoalsandDesignDecisions
359
27.1 Expressiveness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
27.2 General-PurposeGraphRewriting . . . . . . . . . . . . . . . . . . . .360
27.3 Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
27.4 UnderstandabilityandLearnability. . . . . . . . . . . . . . . . . . . .362
27.5 DevelopmentConvenience . . . . . . . . . . . . . . . . . . . . . . .363
27.6 WellFoundedSemantics . . . . . . . . . . . . . . . . . . . . . . . .363
27.7 PlatformIndependence. . . . . . . . . . . . . . . . . . . . . . . . .364
27.8 General-PurposeGraphTransformation. . . . . . . . . . . . . . . . . .364
Bibliography
367
Index
372
VB.NET PDF insert image library: insert images into PDF in vb.net
Support various image formats, like Jpeg or Jpg, Png, Gif, Bmp, Tiff and Import graphic picture, digital photo, signature and logo into PDF document.
convert pdf file into jpg; pdf to jpeg
C# PDF remove image library: remove, delete images from PDF in C#.
VB.NET delete PDF pages, VB.NET convert PDF to SVG. Support removing vector image, graphic picture, digital photo remove multiple or all images from PDF document.
batch pdf to jpg; change file from pdf to jpg on
CHAPTER 1
INTRODUCTION
1.1 WhatIsGrGen.NET?
GrGen(GraphRewriteGenerator)isasoftwaredevelopmenttool thatoersprogramming
languagesoptimizedforgraphstructureddata,withdeclarativepatternmatchingandrewrit-
ingattheircore,withsupportforimperativeandobject-orientedprogramming,andabitof
database-likequery-resultprocessing. Thegenerativeprogrammingsystemfeaturingagraph-
icaldebugger easesthetransformation ofgraph-basedrepresentations,astheyareneededin
e.g. engineering,modeltransformation,computerlinguistics,orcompilerconstruction.
1.2 WhentoUseGrGen.NET
YoumaybeinterestedinusingGrGen.NETifyouhavetotacklethetaskofchangingmeshes
oflinkedobjects,i.e. graph-likedatastructures;anytimethefocusisontherelationship p in
betweenyourdataentities,andesp.ifyouralgorithmsoperateupondataentitiesthatstand
inmultiplerelationstoeachother.
Thesetasks aretraditionally handledby pointer structures andpointer structurenavi-
gation-,search-,andreplacementroutineswrittenbyhand{thislow-level,pointer-ddling
codecanbegeneratedautomaticallybyGrGen.NETforyou. Youspecifyyourtransforma-
tiontaskonahigherlevel ofabstraction n withnodes s connectedbyedges,andrewriterules
consistingofpatternstobesearchedaswellasmodicationstobecarriedout. GrGen.NET
thengeneratesthealgorithmiccoreofyourapplication. Youspecifythewhat t withdeclar-
ative rules, , GrGen.NETtakes s care of the how; ; similar r toSQL L expressions s implemented
bydatabaseengines,ortogrammarrulesimplementedbyparsergenerators. Development
is supportedbyvisualdebugging,youworkonavisualizationofyournetworkandtherule
applicationsinsideit.Thedebuggerandthepatternbasedlanguagesboostyourproductivity
for graph-representation-basedtasks waybeyondtraditionalprogramming. . Duetoall l the
optimizations implementedinthepatternmatchingengineyoustillgainhigh-performance
solutions. Altogether,GrGen.NEToersthehighestcombinedspeedofdevelopmentand
executionyoucanndforthosekindoftasks.
1.3 AnExampleGraph-BasedRepresentation
Let’shavealookatanexampleofagraph-basedrepresentationGrGen.NETiswellsuited
for { { a simplied version of the graph-based compiler r intermediate e representation n Firm
1
thatGrGenwasoriginallydevelopedfor. Nodesrepresentmachineinstructions,e.g.aLoad
fetchesa value fromanaddress or anAdd sums twovalues. . Edges s indicate dependencies
betweennodes, e.g. . an Add d requires s that t its two o operands s are e available e before e it can be
executed. Eachinstructionislocatedwithina a basicblock,allnodeswithinthe Blockare
executediftheBlockisexecuted(inanorderallowedbythedependencies).
Figure1.1showstheprogramgraphforthefollowingC-function:
1
www.libfirm.org
1
VB.NET PDF remove image library: remove, delete images from PDF in
C#.NET convert PDF to text, C#.NET convert PDF to images Support removing vector image, graphic picture, digital photo or all image objects from PDF document in
convert pdf file to jpg file; convert pdf to jpg 100 dpi
VB.NET Word: Word to JPEG Image Converter in .NET Application
NET example below on how to convert a local been converted into an individual Jpeg image / picture. powerful & profession imaging controls, PDF document, image
.net pdf to jpg; convert pdf file to jpg
2
Introduction
Figure1.1:Programgraphofaminimumplusonefunction,withblockcontainmentvisualized
ascontainmentleft,andtheplaingraphright.
VB.NET Image: How to Create Visual Basic .NET Windows Image Viewer
including png, jpeg, gif, tiff, bmp, PDF, and Word What's more, you can even convert an image to ofd.Title = "Open Picture" ofd.Filter = "Picture File |*.bmp
convert pdf page to jpg; convert pdf document to jpg
VB.NET PDF copy, paste image library: copy, paste, cut PDF images
copying, pasting and cutting from adobe PDF file in Supported image formats, including Jpeg or Jpg, Png, Gif and cut vector image, graphic picture, digital photo
change pdf to jpg file; convert pdf picture to jpg
1.3 AnExampleGraph-BasedRepresentation
3
int MinPlus(int x, , int t y)
f
int min;
if (x x < < y) ) f
min = x;
g else f
min = y;
g
return min n + + 1;
g
ProgramexecutionbeginsattheStartnode,whichalsoproducestheinitialmemorystate
andthegivenArguments.TheStartandtheArgumentsbelongtothespecialStartBlock.The
Cmpcomparesthearguments,itsresultisusedbytheCondtocarryoutaconditionaljump
dependingontheresultofthecomparison.AfterfollowingtheJmpofthethen-ortheelse-
Block,theprogramexecutioniscontinuedatBlock$D.ThePhi
2
choosesoneofitsoperands
dependingonthepreviouslyexecutedblock,hereArgument1iftheCondwas evaluatedto
True,or Argument2ifCondwasevaluatedtoFalse. . TheConstant t 1isaddedtothevalue
selectedbythe Phi, before theresult is returnedby the Return. . The e endofthe program
executionis representedby thespecialEndBlockwhichbyconventioncontainsexactlyone
End. Ifyouwanttolearnmoreaboutthisrepresentationortypicaltransformationsoverit,
havealookatthecompilercase[BJ11a]oftheTTC2011wherethisrepresentationwasused
oroursolution[BJ11c].
Thekeypointsherearethat
1. thisisameshofobjects(denotingoperations),
2. that t stand d to each other in 3 relations (control  ow w (red), data a  ow (brown), and
memory ow(blue)
3
),
3. andamajorpartoftheinformationisencodedintheconnectionstructure(topology),
whichisexplicitlyanddirectlyrepresentedwithedges.
Youndsuchrepresentationsinotherdomainsthanprogramminglanguagesandcompil-
ers,too. Theknowledge e ofanagentabouttheexteriorworldcanberepresented intuitively
likethiswithsemantic nets,youcoulduseGrGen.NETforreasoningoverthem. . Models
asunderstoodbymodeldrivenengineeringaretypicallygraphs,withGrGen.NETyoucan
implementamodeltransformationbetweenmodels,orintoalower-levelprogramrepresen-
tation. When n workingin computational l linguistics s youmay y beinterestedin n modeling an
abstractsyntaxgraphinGrGen.NET;therecursiveanditeratedpatternsthatallowtopro-
cesstree-likedatastructuresdeclarativelyrenderGrGen.NETanexcellentmatchforsuch
tasks. Butalsoinengineeringorarchitecture e whereyouneedtodescribethebuildupofthe
modeledsystemfromcomponents,hereyoucanderivecontext-sensitivelysystemblueprints
orsimulatetheirbehaviour. Youndhelpnotonlyinmodellingthem,butalsoinderiving
allinteresting congurations or simulating allinterestingexecutiontraces. . Inform m ofthe
built-insupportforabacktrackingsearchthroughasearchspaceoreventheenumerationof
astatespacewithisomorphicstatepruning,guidedbymatchorderingandltering.
2
ahelper nodefromthestaticsingleassignmentformemployed;in [BBH
+
13]you nd moreinformation
andasimplealgorithmforconstructingSSAfromanabstractsyntaxtree
3
weusedependencies,i.e.thedirectionisreversedcomparedtothe ow
4
Introduction
1.4 WhenNottoUseGrGen.NET
ThereisnothingtogainfromGrGen.NETifscalars,listsorarraysaresucienttomodel
yourdomain,whichisthecaseforalotoftasksincomputingindeed. (Butwhichisnotthe
caseforotherswhichwouldbebettermodeledwithtreesandespeciallygraphs,butaren’t
becauseofthecostofmaintainingpointerstructuresby hand.) ) GrGen.NETis s likely too
heavyweightifyouarejustinterestedincomputingshortestpathsinsimplegraphs. You’re
better owithatraditionalgraphlibraryandits setof pre-implementedalgorithms{the
librarycanbelearnedquickerandthealgorithmscanbereuseddirectly. GrGen.NETwith
itsdomain-speciclanguagesincontrastrequirestimetolearnandsomeeorttospecifyor
codeasolutionin(onlyafterwardsareyourewardedwithamuchhigherpaceofdevelopment).
Thegraphrewritegeneratorisnottherighttoolforyouifyou’researchingforavisual
environment toteachchildrenprogramming{it’s apowerfultoolfor(software)engineers.
Simplerandlesspowerfullanguageslikestorydiagrams[FNTZ00]thatcanbelearnedquicker
andunderstoodmoreintuitively maybeabettermatchhere. . Neither r isitwhatyouneed
if your graphstructureddatais tobeinteractively editedbyanenduser insteadofbeing
automaticallytransformedbyrules(theeditorgeneratorDiaGen[Dia]maybeofinterestin
thiscase).
Each object-oriented d program m contains a heap of f objects pointing g to each other r that
can be understood as a graph like representation, , with h objects being the nodes s and d the
referencesbeingthe(xed)edges.Incontrasttoobject-orientedprogrammingisthetopology
ingraph-orientedprogrammingasoeredbyGrGen.NETnothiddenandencapsulatedin
theobjects,but globallyopenforinspectionandmodication;openandreadilyaccessible
forpatternmatchingandrewriting. Prefertheclosedheapsifyoudon’tneedaglobalview
onthedata,theyarecheaperandtheinformationhidingcutsdependencies.
1.5 WhatIsGraphRewriting?
ThenotionofgraphrewritingasunderstoodbyGrGen.NETisamethodfordeclaratively
specifying \changes" " to o a graph. . This s is comparable to the e well-known term rewriting.
Normallyyouuseoneormoregraphrewriterulestoaccomplishacertaintask.GrGen.NET
implementsanSPO-basedapproach(asdefault). Inthesimplestcasesuchagraphrewrite
ruleconsistsofatupleL!R,whereasL|thelefthandside oftherule|iscalledpattern
graph andR|theright handside oftherule|istherewritegraph.
L
R
H
H
0
PatternGraph
Matchm
HostGraph
RewriteGraph
ResultGraph
PreservationMorphismr
Rule
RuleApplication
Figure1.2:BasicIdeaofGraphRewriting
Moreoverweneedtoidentifygraphelements(nodesoredges)ofLandRforpreserving
themduringrewrite. Thisisdonebyapreservationmorphismr r mappingelementsfromL
toR;themorphismrisinjective,butneedstobeneithersurjectivenortotal.Togetherwith
arulenamepwehavep:L
r
!R.
ThetransformationisdonebyapplicationofaruletoahostgraphH.Todoso,wehave
tondanoccurrenceofthepatterngraphinthehostgraph.Mathematicallyspeaking,such
1.6 AnExampleForRewriting
5
amatchmisanisomorphismfromLtoasubgraphofH.Thismorphismmaynotbeunique,
i.e.theremaybeseveralmatches. Afterwardswechangethematchedspotm(L)ofthehost
graph,suchthatitbecomesanisomorphicsubgraphoftherewritegraphR. ElementsofL
notmappedbyraredeletedfromm(L)duringrewrite.ElementsofRnotintheimageofr
areinsertedintoH,allothers(elementsthataremappedbyr)areretained. Theoutcome
ofthesestepsistheresultinggraphH
0
.Insymboliclanguage: H
m;p
==)H
0
.
1.6 AnExampleForRewriting
We’llhavealookat asmallexample. . Graphelements(nodesandedges)arelabeledwith
anidentier. Ifatypeisnecessarythenitisstatedafteracolon. Westartusingaspecial
case to construct our host graph: : anempty y pattern n always produces s exactly one
4
match
(independentofthehostgraph).Soweconstructanapplebyapplying
p
0
: ;  !
e
1
e
2
e
3
e
4
e
5
totheemptyhostgraph. AstheresultwegetanappleasnewhostgraphH.Nowwewant
torewriteourapplewithstemtoanapplewithalea et.Soweapply
p
1
:
a
b
x
!
c
b
y
z
toHandgetthenewhostgraphH
1
,somethinglikethis:
e
1
e
2
e
3
e
4
e
5
p
1
=====)
e
1
e
2
e
6
e
7
e
4
e
5
Whathappened? GrGen.NEThasarbitrarilychosenonematchoutofthesetofpossible
matches,becausexmatchesedgee
3
aswellase
1
. Acorrectsolutioncouldmakeuseofedge
4
Becauseoftheuniquenessofthetotalandtotallyundenedmorphism.
6
Introduction
typeinformation. Wehave e tochangerule p
0
togenerate the edgee
1
witha specialtype
\stem".Andthistimewewillevenkeepthestem.Solet
p
2
:
a
b
x:stem
!
c
b
a
x
y
z
:
Ifweapplyp
2
tothemodiedH
1
thisleadsto
e
1
:stem
e
2
e
3
e
4
e
5
p
2
=====)
e
1
:stem
e
2
e
3
e
4
e
5
:
1.7 AnExampleRuleApplicationontheRepresentation
Aninterestingtransformationthatcanbeappliedonthecompilerintermediaterepresentation
introducedinsection1.3isconstantfolding. Figure1.3highlightstheeectofapplyingthe
followingexamplerulebyshowingthesituationbeforeitisappliedandafterwards:
1
rulefoldCond{
2
cond:Cond -df0:Dataflow->c0:Const;
3
falseBlock:Block-falseEdge:False->cond;
4
trueBlock:Block-trueEdge:True->cond;
5
alternative{
6
TrueCond{
7
if {c0.value == 1;}
8
modify {
9
delete(falseEdge);
10
-jmpEdge:Controlflow<trueEdge>->;
11
}
12
}
13
FalseCond {
14
if {c0.value == 0;}
15
modify {
16
delete(trueEdge);
17
-jmpEdge:Controlflow<falseEdge>->;
18
}
19
}
20
}
21
modify{
22
delete(df0);
23
jmp:Jmp<cond>;
24
}
25
}
Documents you may be interested
Documents you may be interested