User loginNavigation |
LtU ForumOverloading in a statically typed functional languageI am working on a statically typed functional array language that would benefit greatly from operator overloading. I originally wanted to use something as elegant as type classes, but they don't mesh well with multiple meanings for the same operator (matrix * matrix, matrix * vector, scalar * matrix, etc... multiplication). I've looked at multiparameter type classes (with functional dependencies) but I think that approach would clutter up an already complicated language and create too much cognitive overhead for potential users. I've also looked at Furuse's work with G'Caml, which is thus far the most promising technique I've seen. Unfortunately, the complicated type signatures might be a deal breaker. I'm writing my language with current Matlab users in mind and I don't think they would tolerate deciphering the messy derived generic types that seem to crop up for even simple functions. Can anyone suggest any other mechanisms for implementing operator overloading? the power of GNU AwkTwo alternative perspectives on GNU Awk (both from 1996):
future history of logic programmingA Possible Future History of Logic Programming [PDF, 98KB] by M.H. van Emden:
How did Prolog achieve world domination? (I thought Forth was going to win for sure?) Easy. Through the following contributions of the 90's to logic programming:
What Senner's History of Logic Programming (MIT Press, 2020) fails to do is pinpoint the year in which revisionist historians of logic programming were decisively exposed for the frauds that they were. (Kidding.) This class typeThat may have been discussed before, but I did not find the right search terms for it. In strongly typed object-oriented languages like C++ or Java, how do you designate the type of the class in class methods?
The problem with the code above is that in a derived class, the signature allows newInstance to return an instance of the base class-- the signature is not restrictive enough.
There should be some way to tell the compiler that the type returned is that of the class it is invoked on, is there? Or is there simply a covalence rule for return types such that you would write
...which looks a bit hackish to me. The signature needs to be written again for each subclass. And it needs to be extended to parameters too for eg. clone
What I am looking for is something like:
Any insight is welcome. Teaching oneself Abstract Interpretation ?My current work deals with extracting security properties from C source code. Without entering too much into the details, it started as a type-and-effects type system with dependent types, but it's slowly starting to look like abstract interpretation-and-effects. Now, my knowledge of abstract interpretation is somewhat limited: I have read one or two of Girard's papers, and everything else I know comes from talks and discussions. So I guess it's time for me to learn more. So, here's the question: does anyone around here have good references on abstract interpretation and the techniques involved? Concurrent Composition and Algebras of Events, Actions, and ProcessesPossibly interesting, if you are into process algebras. I am insufficiently clueful about the topic area to pass serious judgement on the paper, but I found it a mostly accessible read at any rate. Mark BURGIN and Marc L. SMITH 2006
I mean, any paper that says "One of the reasons is that, as experts claim, nontrivial concurrent programs based on threads, semaphores, and mutexes are incomprehensible to humans" can't be all bad. CFP: ALTA 2008 (Architectures and Languages for Throughput Applications)This is an abbreviated Call-For-Papers (CFP). ALTA 2008 Workshop Held in conjunction with the Sunday June 22nd, Beijing, China Submitted papers will be considered to be published on one or more special issues of journals or newsletters highlighting the "Best of ISCA 2008 Workshops." Workshop Theme Throughput-oriented applications are attracting broader interest because of the proliferation of multi- and many-core CPUs and GPUs. The reasons are many-fold. Increasing software-exposed parallelism is necessitated by power-constrained design. Moreover, the emphasis on visual quality in entertainment-oriented applications is driving demand on client platforms. Finally, the pre-existing demands for compute cycles in high-performance computing is challenged by the changing programming and optimization landscape found in highly integrated multi-core devices. This workshop seeks an interdisciplinary set of commercial and academic researchers and practitioners working at the frontiers of throughput oriented programming models, applications, and architectures. For more details, please see the web site at http://www.sei.buaa.edu.cn/alta08/ By jbfryman at 2008-03-27 17:19 | LtU Forum | login or register to post comments | other blogs | 5207 reads
Ongoing work on Supercompilation of Java code (or supercompilation in general)?I was intrigued by this description of a technology for "supercompiling" Java code. But I notice that a lot of the information on that website appears to be "stale", and hasn't been updated for a few years. Is anyone aware of the current state of research on supercompilers, especially as it relates to Java? Regards, Ian. Constraint Imperative ProgrammingI'm amazed on not finding anything relating to constraint imperative programming. Nothing on LtU comes up for languages like Alma, Turtle, and Kaleidoscope. From the Abstract on Turtle:
These languages are very related to languages based on Design-by-contract. It seems like many technologies are evolving towards a logical and/or constraint style of programming. After all, there is UML 2.0's OCL, the semantic web, VHDL, AOP, Dataflow, etc. Algebraist NetworkThe network of Aldor users and developers at: would like to promote the development and use of the Aldor programming language by facilitating the interaction between developers and users of the language. Readers of this forum are cordially invited to join this new community.
|
Browse archives
Active forum topics |
Recent comments
8 weeks 1 day ago
8 weeks 1 day ago
8 weeks 1 day ago
8 weeks 2 days ago
8 weeks 5 days ago
8 weeks 5 days ago
8 weeks 6 days ago
9 weeks 2 hours ago
9 weeks 3 hours ago
9 weeks 3 hours ago