User loginNavigation |
LtU ForumTom 2.6 released : matching constraints, strategic programming with java objectsTom 2.6 was just released, and includes a whole lot of interesting things. Among them, there are : have fun ! The complete announce: It is our great privilege and pleasure to announce the availability of This release continues our work on the integration of pattern matching Tom is a pattern matching compiler developed at INRIA. It is Many applications have been developed in Tom, both in academia and Tom is a complex compiler which adds powerful constructs to Java and C: This new release contains many improvements and new features: - new alternative syntax for '%match', based on atomic constraints - hand-written strategies became easier to write. No more 'Forward' - strategy support for hand-written mappings - new tool based on ANTLR 3 for implementing parsers that - term-graph rewriting support in Gom - Gom's lists now implement the interface Collection. Consequently, - several speed-ups of the compilation process as well as for the - a lot of new features for the Eclipse plug-in, including the Tom is available, in open source (GPL/BSD License), from the web page: Best regards, By Antoine Reilles at 2008-04-24 09:59 | LtU Forum | login or register to post comments | other blogs | 5665 reads
Un-filter (or merge) listsWhat is the standard functional construct which is the converse of filter? Eg. if I want to add 0 between all elements of a list? Or if I want to merge two sorted lists preserving sorting? I am thinking of a "unfilter" construct which takes a list of lists, and a list of functions applied in turn (*insert 0 between two elements of the list*) unfilter [a] [fun x::xs -> (x, [xs]); fun as -> (0, [as])] (*merge two sorted lists*) unfilter [a;b] [fun as, bs -> match as, bs with | x::xs, y::ys => if y < x then (y, [as;ys]) else (x, [xs;bs]) | [], y::ys => (y, [[];ys]) | x::xs, [] => (x, [xs;[]])] M.Sc thesis ideas on the intersection: Artificial intelligence, Category theory, and Programming languages.Hello all I am searching for M.Sc thesis ideas on the intersection: Artificial intelligence, Category theory, and Programming languages. References to relevant papers will be appreciated. Cheers YAJVML: Qi4jAnother language on top of ye olde JVM is Qi4j. There's a list of thoughts behind it, including something which sorta ran a bell with layman-me. (Recently, due to design frustrations at work and due to Warnock's "Stay an order of magnitude more general than you think you need" quote, I've been thinking that really atomizing things in a design would be neat, so you could more easily in theory use the bits a la lego to refactor into whatever new take on your app you need.)
Static Typing and ExpressivityI recently discovered an essay, "What To Know Before Debating Type Systems." It is an excellent essay, and I highly recommend reading all of it. However, there was one particular section that really caught my attention: "Fallacy: Static types imply longer code." The author suggests that a static type system can actually allow a programmer to write more concise solutions to some problems. There is one Haskell example given to support this: if you compare the return value of Data.Map.lookup to "Nothing" or "Just object", then the function's return value will be of type "Maybe object". If you don't do this check, then the function will throw an exception if the search value isn't found. Unfortunately, I'm new to Haskell and having trouble understanding how this capability can make code more concise. If I'm not mistaken, the "lookup" function is polymorphic on the return type. The person that wrote "lookup" created several versions with different return types, and Haskell can infer the correct one to use based on the way that the return value is used. But if I were using an untyped language, wouldn't it be possible for me to write the same functions with slightly different names for different return types? Perhaps "lookupEx" could throw an exception while "lookupNull" could return some sort of Null value. I admit that this solution seems somewhat less elegant and reliable, but I think the code would be about the same length. I would really appreciate it if anyone could offer some insight into this issue. Also, if you happen to know of any other articles or papers describing examples of improved expressivity through static typing, I'd love to read them. To clarify, I certainly agree that a static type system can catch errors at compile time that wouldn't be caught until runtime in a dynamically typed language (even including some infinite loop bugs!). However, right now I'm mainly curious about expressiveness. Unfortunately, many people refer to a static type system that can express a lot of information about the variables and thus catch more bugs as an "expressive" type system. This ambiguity has made it difficult to find answers with Google. Thanks Breaking region nesting in type-and-effect systems?Type and effect systems have been studied in the context of region-based memory management. The Disciple compiler is a recent example of such a system, and the MLKit has had such a region system for quite some time. Unfortunately, the Tofte-Talpin region calculus and its variants requires nested region lifetimes, which turns out to be unnatural for some programs. Substructural region systems relax this restriction, by reifying region deallocation as an explicit operation. Instead, the authority to use and free a region is encapsulated in a linear capability. It's not clear to me why this approach of separating deallocation to break the lifetime nesting would not work in a type and effect system. I'm not specifically referring to the Tofte-Talpin type and effect system, but whether some type and effect system could be designed which avoids the nesting restrictions. Has this been studied anywhere, and if not, what are the difficulties in designing such a type and effect system? Fan Programming LanguageJust came across the Fan object-oriented programming Language, running on the JVM and the CLR. They're shooting for portability across both VMs. Looks like they took an interesting approach language-wise, such as default immutability for concurrency, closures, mixins and exporting namespaces as REST-like URIs. This last feature is one I first encountered in the Waterken capability-secure HTTP application server. I was disappointed to read that Fan eschews generics/parametric polymorphism however. All told, it seems to lean slightly more towards the dynamic end of the spectrum than C#/Java. more power and less verbiageLSBU's Dennis Furey produced a language the likes of which you have never seen: There is a very small subset of the language vaguely resembling pure Lisp, and any program expressible in the language is expressible in this subset. However, programs are written mostly using operators representing functional combinators. Extended Deadline - ALTA 2008 CFPPaper submission deadline: EXTENDED: April 21, 2008 Architectures and Languages for Throughput Applications 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. By jbfryman at 2008-04-14 17:12 | LtU Forum | login or register to post comments | other blogs | 4653 reads
Career paths and concernsThis may be slightly off-topic, but I was wondering if some of you in the community could point me in the right direction with some questions I have about a career in computer science research. To give you some background, I recently graduated from college with a CS degree, and I'm currently working for a small-to-medium-sized consulting firm doing software development in .NET. Lately I've been thinking that software development in general might not be for me, and that I might be better off getting into research, or at least something closer to it. I feel like most of the problems I run into in my work are not that difficult, and that I just won't be putting all of my technical skills to good use in this line of work. I want to work on technical problems with some real "meat" on them, instead of just putting buttons on a form. One of my interest areas is programming languages, which is why I've come here for advice. I guess I was initially turned off from graduate school and research after I read this article on Joel on Software, specifically the part about the dynamic logic class. After seeing that, I thought that the only way to do work that would actually make it to the "real world" would be to get into software development. I realize now that that's not entirely true, but I'm still concerned about making sure any work I do is useful, and doesn't solve a problem that no one cares about. With all of that said, here are my questions:
As you can possibly tell, I'm primarily just ignorant of the various options out there, and trying to figure out what they are. As a result, any answers, advice, or links to relevant information are appreciated, and thank you for reading this long message. |
Browse archives
Active forum topics |
Recent comments
8 weeks 1 day ago
8 weeks 1 day ago
8 weeks 2 days ago
8 weeks 2 days ago
8 weeks 5 days ago
8 weeks 5 days ago
9 weeks 52 min ago
9 weeks 4 hours ago
9 weeks 6 hours ago
9 weeks 6 hours ago