User loginNavigation |
LtU ForumA fresh look at AOP - Use classes to define behavior, use aspects to compose behaviorA fresh look at AOP, by Carlo Pescio (http://www.aspectroid.com) "Aspectroid is an exploration of the design space, moving beyond conventional object oriented design and further into the aspect-oriented expanse. [...] to best combine OOP and AOP, [...] AOP is a powerful, yet largely misunderstood and misrepresented paradigm." "I started this project with a design vision in my mind, and a set of hypothesis that I wanted to test. My vision was to use aspects to improve object-oriented design, or more exactly statically-typed object-oriented design, so that I could have the benefits of static typing, but also enjoy the flexibility usually associated with dynamic languages like Smalltalk. Actually, I wanted to move one step forward, and aim for a degree of compositionality beyond what is normally possible with OOP alone. Behind that vision, I had a few, relatively straightforward goals: - Align the architecture with the nature of the problem [...] "AOP goals: Use aspects to separate application concerns, as opposed to what we commonly see in literature, where technological concerns like logging, exception handling, etc. are usually addressed." Function Types and Dylan 2016
Function Types and Dylan 2016
out of memoryWhen a resource is exhausted, like memory, does this need special handling in a programming language? I see a way to avoid it, thus answering no. But I wonder what kind of argument requires yes instead of no. Note I rarely find paper references either useful or interesting, since I like basic ideas summarized in granularity of dozens to hundreds of words. (This is an offshoot from discussion Experiment where out of memory conditions came up. I thought it might be interesting to discuss memory limits as they affect programming languages, if they do.) Resource allocation can look like a system call to a PL (programming language), so running out of memory can be handled by the environment. A runtime hosting a PL can react instead. For example, in a lightweight process system, max memory used by one process might be limited. Hitting a limit occurs in a call, blocking the group/process/thread/fiber. What happens next depends on configuration, process architecture, and registered preference. Options include killing a process group, relaxing limits in triage, and/or blocking until space is freed by another scheduled entity under the same limit-scope mechanism. An "important" process ought to have an out-of-memory handler, to react more flexibly than letting that process be killed. In a lightweight process system, this can be a signal awakening a fiber handling high priority event notifications like "you're overdrawn". From a PL perspective, the code is just event handling, like any other event. A runtime or operating system sees a resource exhausted, so a scheduler responds and not the PL. Is there a reason why a PL should get any say? I can imagine a PL resisting management of resources by the OS and/or runtime because there's no concept of running inside bounded space, so limits imposed by the environment fail to be enough room all the time, because a PL can't stay inside and handlers basically fire all the time to no productive result. But that seems like a language arrogating to itself some OS resource handling role without suitable responsibility and competence. Failing to live inside limits seems more flaw than feature. My point of view isn't interesting to me because I understand it. I'd prefer to hear different views so I learn something. Is there a reason why a PL provides special value by handling resource exhaustion more directly than the host environment? Stream Processing with a SpreadsheetECOOP 2014 paper (distinguished) by Vaziri et. al, abstract:
By Sean McDirmid at 2014-08-13 04:10 | LtU Forum | login or register to post comments | other blogs | 23240 reads
Call by MeaningA new exciting paper in my Google Scholoar feed by Hesam Samimi et al. Abstract:
A theory of data parallel computingThis work is motivated by the following considerations
Here is my theory story. I have prototype software, and you can take my word for it that (within its limited functionality) it is as efficient as hand-coded mode-specific software. pdf document, slightly updated Feedback much appreciated. SLE 2014 - Call for Participation======================================= 7th International Conference on Software Language Engineering (SLE) 2014 Vasteras, Sweden, September 15-16, 2014 http://www.sleconf.org/2014/ Co-located with: 29th IEEE/ACM International Conference on Automated Software Engineering (ASE 2014) --------------------------------------------------------- SLE workshops: 14 September, 2014 --------------------------------------------------------- Software Language Engineering (SLE) is the application of systematic, disciplined, and measurable approaches to the development, use, deployment, and maintenance of software languages. The term "software language" is used broadly, and includes: general-purpose programming languages; domain-specific languages (e.g. BPMN, Simulink, Modelica); modeling and metamodeling languages (e.g. SysML and UML); data models and ontologies (e.g. XML-based and OWL-based languages and vocabularies). --------------------------------------------------------- The overall principle of SLE is to be broad-minded and inclusive about relevance and scope. We solicit high-quality contributions in areas ranging from theoretical and conceptual contributions to tools, techniques, and frameworks. Topics of interest include, but are not limited to, the following: - Tools and methods for software language design and extension (incl. meta-languages, meta-tools, language workbenches) --------------------------------------------------------- Title: From Language Engineering to Viewpoint Engineering Speaker: Colin Atkinson, University of Mannheim Abstract: As software systems increase in size and complexity, and are expected to cope with ever more quantities of information from ever more sources, there is an urgent and growing need for a more view-oriented approach to software engineering. Views allow stakeholders to see exactly the right information, at exactly the right time, in a way that best matches their capabilities and goals. However, this is only possible if the information is represented in the optimal languages (i.e. domain- and purpose-specific), with the necessary context information and the optimal manipulation/editing features - that is, if information is viewed from the optimal viewpoints. Rather than merely engineering languages, therefore, software engineers in the future will need to engineer viewpoints, which augment language definitions (e.g. meta-models, syntax ...) with context information (e.g. elision, location, perspective ...) and user-interaction information (e.g. editing pallets, view manipulation services ...). In this talk Colin Atkinson will outline the issues faced in supporting the flexible and efficient engineering of viewpoints and will present some key foundations of a fundamentally view-oriented approach to software engineering --------------------------------------------------------- - A SAT-based Debugging Tool for State Machines and Sequence Diagrams, Petra Kaufmann, Martin Kronegger, Andreas Pfandler, Martina Seidl and Magdalena Widl --------------------------------------------------------- ITSLE - This workshop explores SLE concepts from an industrial perspective. Parsing@SLE - This workshop was organized the first time in 2013 and brought together a wide variety of people intereseted in parsing. --------------------------------------------------------- - Best paper. Award for best overall paper, as determined by the PC chairs based on the recommendations of the programme committee. Award Sponsors: Google, Gemoc, itemis --------------------------------------------------------- Early registration ends 15 August. http://www.sleconf.org/2014/Registration.html --------------------------------------------------------- For any questions or concerns, please contact the General Chair: Jurgen.Vinju@cwi.nl --------------------------------------------------------- Jurgen Vinju, Centrum Wiskunde & Informatica, The Netherlands PROGRAM COMMITTEE CO-CHAIRS Benoit Combemale, University of Rennes, France PROGRAM COMMITTEE Emilie Balland, INRIA, France WORKSHOP ORGANIZATION CHAIR Eric Van Wyk, University of Minnesota, USA PANEL ORGANIZATION CHAIR Ralf Lammel, Universitat Koblenz-Landau, Germany PUBLICATION CHAIR Olivier Barais, University of Rennes, France PUBLICITY CHAIRS Craig Anslow, University of Calgary, Canada (general publicity) LOCAL ORGANIZATION CHAIR Ivica Crnkovic, Malardalen University, Sweden — Craig Anslow, PhD By craiganslow at 2014-08-08 05:40 | LtU Forum | login or register to post comments | other blogs | 3945 reads
Expressing Natural Deduction in Logic LanguagesI am looking at the order theoretic axioms for intuitionistic propositional logic, which form a Heyting algebra. I am thinking about the join rule: C ≤ A C ≤ B --------------- C ≤ (A ^ B) My understanding is the rule can be read both forwards and backwards. I initially encoded it like this: rule(le(C, meet(A, B)), pair(le(C, A), le(C, B))). rule(pair(le(C, A), le(C, B)), le(C, meet(A, B))). But this needs the following additional rules to be defined: rule(pair(A, B), pair(X, Y)) :- rule(A, X), rule(B, Y). rule(pair(A, B), pair(Y, X)) :- rule(A, X), rule(B, Y). rule(A, B) :- rule(A, C), rule(C,B). The last of which is particularly problematic as it matches any 'A', and 'B' so results in dramatic increase in the search space, and results in a larger search depth to find the solution. So as an alternative I want to encode the rules more natively, and I am thinking about extending the interpreter to allow conjunctions in the head, so the rules would be: le(C, meet(A, B)) :- le(C, A), le(C, B). le(C, A), le(C, B) :- le(C, meet(A, B)). The implementation would match the first head struct as usual, and then would search the remaining goals for a match to the conjoined structs in the head (removing the matching goals). Does this seem an efficient way to deal with this? Am I overlooking some way of rewriting the rules (although there is something to be said for keeping them close to the natural way of writing them)? Any suggestions for other ways to tackle this problem? I can't find any references to extending Prolog in this way, so I am concerned that this is problematic, or there is just a much simpler way to deal with it. q-Derivatives of datatypesBy mikestay at 2014-08-05 07:58 | LtU Forum | login or register to post comments | other blogs | 3639 reads
Cross-platform idiomatic code generationSome languages cross-compile. Things like Xtend and Shen generate source code, whereas things like Bigloo and Fantom target bytecode. For some reason I day dream about tools to translate a Nice Language into Regular Day Job Languages while somehow maintaining an idiomatic source-level code style in each of those. Model driven design tools talk about it sometimes: Practical Model-to-Code Transformation in Four Object-Oriented Languages. Admittedly that's constraining things a bit since they are all OO, and not e.g. 1 OO, 1 FP, 1 Logic target.
|
Browse archives
Active forum topics |
Recent comments
8 weeks 6 days ago
9 weeks 4 hours ago
9 weeks 18 hours ago
9 weeks 1 day ago
9 weeks 4 days ago
9 weeks 4 days ago
9 weeks 5 days ago
9 weeks 5 days ago
9 weeks 6 days ago
9 weeks 6 days ago