"Exception-safety strong guarantee: The operation has either completed successfully or thrown an exception, leaving the program state exactly as it was before the operation started." David Abrahams [1] The above definition of strong exception-safety comes from the world of C++, but it can be applied to any language. Because the exception-safety strong guarantee plays a central role in easing the development of robust software, we have designed a type-system able to capture its essence. We present a lightweight type system for Java-like languages that, by introducing a simple modifier to types, enforces programs to satisfy the strong guarantee.
{"title":"Strong exception-safety for Java-like languages","authors":"M. Servetto","doi":"10.1145/1924520.1924523","DOIUrl":"https://doi.org/10.1145/1924520.1924523","url":null,"abstract":"\"Exception-safety strong guarantee: The operation has either completed successfully or thrown an exception, leaving the program state exactly as it was before the operation started.\" David Abrahams [1] The above definition of strong exception-safety comes from the world of C++, but it can be applied to any language.\u0000 Because the exception-safety strong guarantee plays a central role in easing the development of robust software, we have designed a type-system able to capture its essence.\u0000 We present a lightweight type system for Java-like languages that, by introducing a simple modifier to types, enforces programs to satisfy the strong guarantee.","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"557 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123387533","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-09-01DOI: 10.1142/9789812770998_0007
R. Dondi, G. Fertin, Stéphane Vialette
In the context of metabolic network analysis, Lacroix et al.11 introduced the problem of finding occurrences of motifs in vertex-colored graphs, where a motif is a multiset of colors and an occurrence of a motif is a subset of connected vertices which are colored by all colors of the motif. We consider in this paper the above-mentioned problem in one of its natural optimization forms, referred hereafter as the Min-CC problem: Find an occurrence of a motif in a vertex-colored graph, called the target graph, that induces a minimum number of connected components. Our results can be summarized as follows. We prove the Min-CC problem to be APX–hard even in the extremal case where the motif is a set and the target graph is a path. We complement this result by giving a polynomial-time algorithm in case the motif is built upon a fixed number of colors and the target graph is a path. Also, extending recent research8 , we prove the Min- CC problem to be fixed-parameter tractable when parameterized by the size of the motif, and we give a faster algorithm in case the target graph is a tree. Furthermore, we prove the Min-CC problem for trees not to be approximable within ratio c log n for some constant c > 0, where n is the order of the target graph, and to be W[2]–hard when parameterized by the number of connected components in the occurrence of the motif. Finally, we give an exact efficient exponential-time algorithm for the Min-CC problem in case the target graph is a tree.
{"title":"Weak pattern matching in colored graphs: Minimizing the number of connected components","authors":"R. Dondi, G. Fertin, Stéphane Vialette","doi":"10.1142/9789812770998_0007","DOIUrl":"https://doi.org/10.1142/9789812770998_0007","url":null,"abstract":"In the context of metabolic network analysis, Lacroix et al.11 introduced the problem of finding occurrences of motifs in vertex-colored graphs, where a motif is a multiset of colors and an occurrence of a motif is a subset of connected vertices which are colored by all colors of the motif. We consider in this paper the above-mentioned problem in one of its natural optimization forms, referred hereafter as the Min-CC problem: Find an occurrence of a motif in a vertex-colored graph, called the target graph, that induces a minimum number of connected components. Our results can be summarized as follows. We prove the Min-CC problem to be APX–hard even in the extremal case where the motif is a set and the target graph is a path. We complement this result by giving a polynomial-time algorithm in case the motif is built upon a fixed number of colors and the target graph is a path. Also, extending recent research8 , we prove the Min- CC problem to be fixed-parameter tractable when parameterized by the size of the motif, and we give a faster algorithm in case the target graph is a tree. Furthermore, we prove the Min-CC problem for trees not to be approximable within ratio c log n for some constant c > 0, where n is the order of the target graph, and to be W[2]–hard when parameterized by the number of connected components in the occurrence of the motif. Finally, we give an exact efficient exponential-time algorithm for the Min-CC problem in case the target graph is a tree.","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"93 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125176411","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-09-01DOI: 10.1142/9789812770998_0009
D. Zanardini
The information flow property of Non-Interference was recen tly relaxed into Abstract NonInterference (ANI), a weakened version where attackers can only observe properties of data, rather than their exact value. ANI was originally defin ed on integers: a property models the set of numbers satisfying it. The present work proposes an Object-Oriented, Javabased formulation of ANI, where data take the form of objects, and the observed property comes to be their class. Relevant data are stored in fields; th e execution of a program is taken to be the invocation of some (public) method by an external user; a class is secure if, for all its public methods, the class of its public data after the execution does not depend on the initial class of its private data. The relation ANI lie s in the representation of abstract domains as class hierarchies: upper closure operators map objects into the smallest class they belong to. An analyzer for a non-trivial subset of Java is illustrated, which is sound since programs are never misclassified as secure.
{"title":"Analyzing Non-Interference with respect to Classes","authors":"D. Zanardini","doi":"10.1142/9789812770998_0009","DOIUrl":"https://doi.org/10.1142/9789812770998_0009","url":null,"abstract":"The information flow property of Non-Interference was recen tly relaxed into Abstract NonInterference (ANI), a weakened version where attackers can only observe properties of data, rather than their exact value. ANI was originally defin ed on integers: a property models the set of numbers satisfying it. The present work proposes an Object-Oriented, Javabased formulation of ANI, where data take the form of objects, and the observed property comes to be their class. Relevant data are stored in fields; th e execution of a program is taken to be the invocation of some (public) method by an external user; a class is secure if, for all its public methods, the class of its public data after the execution does not depend on the initial class of its private data. The relation ANI lie s in the representation of abstract domains as class hierarchies: upper closure operators map objects into the smallest class they belong to. An analyzer for a non-trivial subset of Java is illustrated, which is sound since programs are never misclassified as secure.","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129463204","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-09-01DOI: 10.1142/9789812770998_0014
D. Ancona, Giovanni Lagorio, E. Zucca
In mainstream class-based object-oriented languages with nominal types, like C++, Java and C#, typechecking algorithms require methods to be annotated with their parameter types, which are either fixed or constrained by a (nominal) bound. On the contrary, languages like ML, CaML and Haskell use powerful type inference algorithms capable of calculating the type for a function in which parameter types are left unspecified. This inferred type is possibly polymorphic, hence functions can be applied to arguments of different, unrelated, types, which are instances of the same schema. We show that, surprisingly enough, the latter scenario works smoothly for Java-like languages too. That is, we can define polymorphic types for methods and automatically infer these types when type annotations are omitted. These polymorphic types intuitively capture the (less restrictive) requirements on arguments needed to safely apply the method. Moreover, the approach enjoys separate compilation a la Java. We formalize our ideas on a minimal Java subset, for which we define a type system with polymorphic types and prove its soundness. We then describe an algorithm for type inference and prove its soundness and completeness. A prototype implementing inference of polymorphic types from untyped code is available.
{"title":"Type inference for polymorphic methods in Java-like languages","authors":"D. Ancona, Giovanni Lagorio, E. Zucca","doi":"10.1142/9789812770998_0014","DOIUrl":"https://doi.org/10.1142/9789812770998_0014","url":null,"abstract":"In mainstream class-based object-oriented languages with nominal types, like C++, Java and C#, typechecking algorithms require methods to be annotated with their parameter types, which are either fixed or constrained by a (nominal) bound. On the contrary, languages like ML, CaML and Haskell use powerful type inference algorithms capable of calculating the type for a function in which parameter types are left unspecified. This inferred type is possibly polymorphic, hence functions can be applied to arguments of different, unrelated, types, which are instances of the same schema. We show that, surprisingly enough, the latter scenario works smoothly for Java-like languages too. That is, we can define polymorphic types for methods and automatically infer these types when type annotations are omitted. These polymorphic types intuitively capture the (less restrictive) requirements on arguments needed to safely apply the method. Moreover, the approach enjoys separate compilation a la Java. We formalize our ideas on a minimal Java subset, for which we define a type system with polymorphic types and prove its soundness. We then describe an algorithm for type inference and prove its soundness and completeness. A prototype implementing inference of polymorphic types from untyped code is available.","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"115 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132731914","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-09-01DOI: 10.1142/9789812770998_0010
Igor Razgon
In this paper we propose an algorithm which, given a directed graph G, finds the minimum directed feedback vertex set (FVS) of G in O∗(1.9977n) time and polynomial space. To the best of our knowledge, this is the first algorithm computing the minimum directed FVS faster than in O(2n). The algorithm is based on the branch-and-prune principle. The minimum directed FVS is obtained through computing of the complement, i.e. the maximum induced directed acyclic graph. To evaluate the time complexity, we use the measureand-conquer strategy according to which the vertices are assigned with weights and the size of the problem is measured in the sum of weights of vertices of the given graph rather than in the number of the vertices.
{"title":"Computing Minimum Directed Feedback Vertex Set in O(1.9977n)","authors":"Igor Razgon","doi":"10.1142/9789812770998_0010","DOIUrl":"https://doi.org/10.1142/9789812770998_0010","url":null,"abstract":"In this paper we propose an algorithm which, given a directed graph G, finds the minimum directed feedback vertex set (FVS) of G in O∗(1.9977n) time and polynomial space. To the best of our knowledge, this is the first algorithm computing the minimum directed FVS faster than in O(2n). The algorithm is based on the branch-and-prune principle. The minimum directed FVS is obtained through computing of the complement, i.e. the maximum induced directed acyclic graph. To evaluate the time complexity, we use the measureand-conquer strategy according to which the vertices are assigned with weights and the size of the problem is measured in the sum of weights of vertices of the given graph rather than in the number of the vertices.","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131050439","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-09-01DOI: 10.1142/9789812770998_0019
Christian Choffrut, A. Frigeri
Presburger arithmetic is the fragment of arithmetic concerning integers with addition and order. Presburger’s supervisor considered the decidability of this fragment too modest a result to deserve a Ph.D. degree and he accepted it only as a Master’s Thesis in 1928. Looking at the number of citations, we may say that history revised this depreciative judgment long ago. There still remains, at least as far as we can see, some confusion concerning the definition itself of the structure: is the domain Z or N? Must we take the order relation or not? (The main popular mathematical websites disagree on this respect). The original paper deals with the additive group of positive and negative integers with no binary relation, but in a final remark of the communication, the author asserts that the same result, to wit quantifier elimination, holds on the structure of the “whole” integers, i.e., the natural numbers with the binary relation <. In 7, which is the main reference on the subject, Presburger arithmetic is defined as the elementary theory of integers with equality, addition, having 0 and 1 as constant symbols and < as binary pred-
{"title":"Definable sets in weak Presburger arithmetic","authors":"Christian Choffrut, A. Frigeri","doi":"10.1142/9789812770998_0019","DOIUrl":"https://doi.org/10.1142/9789812770998_0019","url":null,"abstract":"Presburger arithmetic is the fragment of arithmetic concerning integers with addition and order. Presburger’s supervisor considered the decidability of this fragment too modest a result to deserve a Ph.D. degree and he accepted it only as a Master’s Thesis in 1928. Looking at the number of citations, we may say that history revised this depreciative judgment long ago. There still remains, at least as far as we can see, some confusion concerning the definition itself of the structure: is the domain Z or N? Must we take the order relation or not? (The main popular mathematical websites disagree on this respect). The original paper deals with the additive group of positive and negative integers with no binary relation, but in a final remark of the communication, the author asserts that the same result, to wit quantifier elimination, holds on the structure of the “whole” integers, i.e., the natural numbers with the binary relation <. In 7, which is the main reference on the subject, Presburger arithmetic is defined as the elementary theory of integers with equality, addition, having 0 and 1 as constant symbols and < as binary pred-","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134258315","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-09-01DOI: 10.1142/9789812770998_0013
D. Ancona, E. Zucca
We define a general framework for compositional compilation, meant as the ability of building an executable application by separate compilation and linking of single fragments, opposed to global compilation of the complete source application code. More precisely, compilation of a source code fragment in isolation generates a corresponding binary fragment equipped with type information, formally modeled as a typing, allowing type safe linking of fragments without re-inspecting code. We formally define a notion of soundness and completeness of compositional compilation w.r.t. global compilation, and show how linking can be in practice expressed by an entailment relation on typings. Then, we provide a sucient condition on such entailment to ensure soundness and completeness of compositional compilation, and compare this condition with the principal typings property. Furthermore, we show that this entailment relation can often be modularly expressed by an entailment relation on type environments and a subtyping relation. We illustrate the generality of our approach by instantiating the framework on three main examples: simply typed lambda calculus, where the problem of compositional compilation reduces to compositional type inference; Featherweight Java, where the generated binary code depends on the compilation context; and an extension of Featherweight Java with a boxing/unboxing mechanism, to illustrate how the framework can also support more sophisticated forms of linking-time binary code specialization.
{"title":"A formal framework for compositional compilation","authors":"D. Ancona, E. Zucca","doi":"10.1142/9789812770998_0013","DOIUrl":"https://doi.org/10.1142/9789812770998_0013","url":null,"abstract":"We define a general framework for compositional compilation, meant as the ability of building an executable application by separate compilation and linking of single fragments, opposed to global compilation of the complete source application code. More precisely, compilation of a source code fragment in isolation generates a corresponding binary fragment equipped with type information, formally modeled as a typing, allowing type safe linking of fragments without re-inspecting code. We formally define a notion of soundness and completeness of compositional compilation w.r.t. global compilation, and show how linking can be in practice expressed by an entailment relation on typings. Then, we provide a sucient condition on such entailment to ensure soundness and completeness of compositional compilation, and compare this condition with the principal typings property. Furthermore, we show that this entailment relation can often be modularly expressed by an entailment relation on type environments and a subtyping relation. We illustrate the generality of our approach by instantiating the framework on three main examples: simply typed lambda calculus, where the problem of compositional compilation reduces to compositional type inference; Featherweight Java, where the generated binary code depends on the compilation context; and an extension of Featherweight Java with a boxing/unboxing mechanism, to illustrate how the framework can also support more sophisticated forms of linking-time binary code specialization.","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123545244","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-09-01DOI: 10.1142/9789812770998_0003
Chantal Berline
In apparatus comprising a plurality of hydrocyclone stages connected in cascade as a totally enclosed system, for use in the upgrading of starch or other particulate feedstock, there is provision for recycling part of the underflow stream from the final hydrocyclone stage to the preceding stage.
{"title":"Can a Proper Lambda-Model have an R.E. Equational Theory?","authors":"Chantal Berline","doi":"10.1142/9789812770998_0003","DOIUrl":"https://doi.org/10.1142/9789812770998_0003","url":null,"abstract":"In apparatus comprising a plurality of hydrocyclone stages connected in cascade as a totally enclosed system, for use in the upgrading of starch or other particulate feedstock, there is provision for recycling part of the underflow stream from the final hydrocyclone stage to the preceding stage.","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123964212","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-09-01DOI: 10.1142/9789812770998_0012
L. D'Errico, M. Loreti
2-Chloro-2',6'-dimethyl-N-(2-methoxyethyl)-acetanilide is disclosed as plant growth regulating agent with long lasting activity.
2-氯-2′,6′-二甲基- n -(2-甲氧基乙基)-乙酰苯胺是一种具有持久活性的植物生长调节剂。
{"title":"Modeling Fuzzy Behaviours in Concurrent Systems","authors":"L. D'Errico, M. Loreti","doi":"10.1142/9789812770998_0012","DOIUrl":"https://doi.org/10.1142/9789812770998_0012","url":null,"abstract":"2-Chloro-2',6'-dimethyl-N-(2-methoxyethyl)-acetanilide is disclosed as plant growth regulating agent with long lasting activity.","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127059225","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-09-01DOI: 10.1142/9789812770998_0004
R. Nicola
Within the European project Sensoria, we are developing formalisms for service description that lay the mathematical basis for analysing and experimenting with components interactions, for combining services and formalising crucial aspects of service level agreement. One of the outcome of this study is pSCC, a process calculus with explicit primitives for service definition and invocation. Central to pSCC are the notions of session and pipelining. Sessions are two sided and can be equipped with protocols executed by each side during an interaction and permit interaction patterns that are more structured than the simple one-way and request-response ones. Pipeline permits exchange of values between among sessions. The calculus is also equipped with operators for handling (unexpected) session closures that permit programming smooth propagation of session closures to partners and subsessions, so as to avoid states with dangling or orphan sessions. In the talk we will present SCC and discuss other alternatives that are (or have been) considered within the project.
{"title":"Session Centered Calculi for Service Oriented Computing","authors":"R. Nicola","doi":"10.1142/9789812770998_0004","DOIUrl":"https://doi.org/10.1142/9789812770998_0004","url":null,"abstract":"Within the European project Sensoria, we are developing formalisms for service description that lay the mathematical basis for analysing and experimenting with components interactions, for combining services and formalising crucial aspects of service level agreement. One of the outcome of this study is pSCC, a process calculus with explicit primitives for service definition and invocation. Central to pSCC are the notions of session and pipelining. Sessions are two sided and can be equipped with protocols executed by each side during an interaction and permit interaction patterns that are more structured than the simple one-way and request-response ones. Pipeline permits exchange of values between among sessions. The calculus is also equipped with operators for handling (unexpected) session closures that permit programming smooth propagation of session closures to partners and subsessions, so as to avoid states with dangling or orphan sessions. In the talk we will present SCC and discuss other alternatives that are (or have been) considered within the project.","PeriodicalId":212849,"journal":{"name":"Italian Conference on Theoretical Computer Science","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122265731","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}