Some Measurements of Nullable and Non-Nullable Parameter Declarations in Relation to Software Malleability
نویسندگان
چکیده
The usual advantages put forward for including nullability declarations in the type systems of programming languages are that they improve program reliability or performance. But there is another, entirely different, reason for doing so. In the right context, this information enables the software artifacts we produce, the objects and methods, to exhibit much greater malleability. For declaratively typed languages, we can obtain greater software malleability by extending the model of method call so that assurance of a method’s availability can be provided by any non-nullable parameter, not simply the target parameter, and by allowing the method’s implementation to reside in classes or objects other than the target.. This paper examines the question of whether this hypothetical improvement in software malleability is consistent with existing programming practice by examining the question of the extent to which methods in existing software have multiplicities of non-nullable parameters. The circumstance occurs frequently enough to provide an important reason to introduce declarations of nullability into programming languages.
منابع مشابه
Reducing the use of nullable types through non-null by default and monotonic non-null
With Java 5 annotations, we note a marked increase in tools that can statically detect potential null dereferences. To be effective such tools require that developers annotate declarations with nullity modifiers and have annotated API libraries. Unfortunately, in our experience specifying moderately large code bases, the use of non-null annotations is more labor intensive than it should be. Mot...
متن کاملTo CNF or not to CNF? An Efficient Yet Presentable Version of the CYK Algorithm
The most familiar algorithm to decide the membership problem for context-free grammars is the one by Cocke, Younger and Kasami (CYK) using grammars in Chomsky normal form (CNF). We propose to teach a simple modification of the CYK algorithm that uses grammars in a much less restrictive binary normal form (2NF) and two precomputations: the set of nullable nonterminals and the inverse of the unit...
متن کاملCircular Reference Attributed Grammars - Their Evaluation and Applications
This paper presents a combination of Reference Attributed Grammars (RAGs) and Circular Attribute Grammars (CAGs). While RAGs allow the direct and easy specification of non-locally dependent information, CAGs allow iterative fixed-point computations to be expressed directly using recursive (circular) equations. We demonstrate how the combined formalism, Circular Reference Attributed Grammars (CR...
متن کاملReport on the Experimental Language X 10 DRAFT
break case catch class const continue default do else extends final finally for goto if implements import instanceof interface native new package private protected public return static super switch this throw throws try void while (Note that the primitive types are no longer considered keywords.) X10 introduces the following keywords: activitylocal async ateach atomic await clocked current fore...
متن کاملGeneralised LR parsing algorithms
This thesis concerns the parsing of context-free grammars. A parser is a tool, defined for a specific grammar, that constructs a syntactic representation of an input string and determines if the string is grammatically correct or not. An algorithm that is capable of parsing any context-free grammar is called a generalised (contextfree) parser. This thesis is devoted to the theoretical analysis ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1108.4816 شماره
صفحات -
تاریخ انتشار 2011