Abstract: In programming environments, an object can be extended by adding a new property (subroutine) to the collection of the object properties. The properties of the object can be accessed using property access syntax. Extension property call is an innovation which allows the use of an object together with property access expression to access the properties (subroutines) that are not contained in the object itself, but which are contained in another object and are visible in the scope where the property access expression is used. The extension properties do not have special extension property definition syntax. Any regular property (subroutine) can be used as the extension property of the object if the property is visible in the scope where the property access expression is used. Extension property calls makes programming language code concise, improving code readability.
Abstract: Implicit parameters and implicit arguments are useful in many programming paradigms including functional and logic programming. Implicit parameter declaration order is inferred from the subroutine parameter usage order in the subroutine body. It means that implicit parameters have limited possibilities to be declared in the same order as programmers want. The parameter ignorance operator # allows changing implicit parameter order, but usage of this operator leads to subroutine declaration syntax similar to the syntax of declaring subroutine parameters explicitly, partially losing syntax benefits gained of implicit parameters. In order to preserve all the benefits of implicit parameter usage and allow programmers to change implicit parameter declaration order and scope in concise way, the Grace˜ operator, which is presented in this document, was invented.
Abstract: An embodiment of the present invention consists of methods for parameter declaration in implicit way and of methods for argument usage in implicit way. An embodiment of the present invention is useful in programming languages which support at least one concept that can be interpreted as a method. This invention: raises code readability; reduces redundancy of parameter name and parameter type information making specific parts of the programming language code more compact; allows reduction of global variables making code more parallelizable and suitable for parallel computing systems.