User loginNavigation |
LtU ForumAggregations (e.g., sets) in Logic ProgramsProlog and its derivatives have lacked adequate ways to compute with aggregations, e.g., sets. For example, suppose there is a ground-complete predicate Link[aNode, anotherNode, aCost] When ⊩ Path[aNode, aNode, aCost]→ // when a goal is set for a cost between aNode and itself ⊢ aCost=0▮ // assert that the cost from a node to itself is 0 The following goal-driven Logic Program works forward from start to find the cost to finish:
When ⊩ Path[start, finish, aCost]→
⊢ aCost=Minimum {nextCost + remainingCost
| ⊨ Link[start, next≠start, nextCost], Path[next, finish, remainingCost]}▮
// a cost from start to finish is the minimum of the set of the sum of the
// cost for the next node after start and
// the cost from that node to finish
The following goal-driven Logic Program works backward from finish to find the cost from start:
When ⊩ Path[start, finish, aCost]→
⊢ aCost=Minimum {remainingCost + previousCost
|⊨ Link[previous≠finish, finish, previousCost], Path[start, previous, remainingCost]}▮
// the cost from start to finish is the minimum of the set of the sum of the
// cost for the previous node before finish and
// the cost from start to that Node
Note that the above Logic Programs work together concurrently providing information to each other. For more information see Inconsistency Robustness for Logic Programs adopt convention to define local sense of word in footnote?I wonder whether we can develop a few simple conventions that clarify what we mean by words when we use them, so a single post has fewer ambiguities, and so we might edit a post later for clarification without substantially altering the original post. The idea would be to define the sense of a specific word used in a post. I'll give an example below, involving channel, since that was the word motivating this train of though. But first I'll expand a bit on my general point. A word can mean something very specific, or very general, often with both a technical computing sense as well as plain English language sense. In particular, a technical sense often shadows the plain language sense, as if technical meanings have closer lexical scope, so you can't use a more general sense by default unless a reader is forgiving. Sometimes I mean both: a specific technical sense and the general idea too, at the same time, because I expect a reader to bind to as many as works, as if executing a search query on a word database (e.g. all the meanings of channel that work here, for example). A realistic way to approach the problem is to use footnote format, appending a postscript paragraph to a post that explores the sense of a word used, like a dictionary entry, but biased toward exactly what was intended locally in the current post. The first time channel appears it might be shown in italics, with a paragraph at the end repeating the word again in italics, along with a local clarification of the scope of word meaning as used in the original post. (An unrealistic but funny way to approach the problem is with new text styles, so the way a word is highlighted might imply whether intended meaning is specific or very general, with the latter especially useful when a word has a narrow technical sense.) channel - means of getting something to occur: a knob to read and/or write an interface to access data or controls, encompassing things as different as dereferencing a variable, accessing an array member, reading or writing streams, calling functions, or using a datatype named "channel" in a language or computing system. PLATEAU 2015 - Call for Papers--------------------------------------------------------------------------- Co-located with SPLASH 2015 http://2015.splashcon.org/track/plateau2015 CALL FOR PAPERS Programming languages exist to enable programmers to develop software PLATEAU gathers the intersection of researchers in the programming TOPICS Some particular areas of interest are: - empirical studies of programming languages SUBMISSIONS PLATEAU encourages submissions of three types of papers: Research and Position papers: We encourage papers that describe Hypotheses papers: Hypotheses papers explicitly identify beliefs of Format: Submissions should use the SIGPLAN Proceedings Format, 10 All types of papers will be published in the ACM Digital Library at Paper Format: http://www.sigplan.org/Resources/Author/ KEYNOTE Mary Beth Rosson IMPORTANT DATES PROGRAM COMMITTEE ORGANIZERS By craiganslow at 2015-07-27 22:50 | LtU Forum | login or register to post comments | other blogs | 2460 reads
Are Actors a Good Model for Computation.Actors seem to allow messages to be recieved in a different order from which they were sent. This sounds a lot like the problems with simultaneity that occur with relativity, effectively messages may take different paths from sender to receiver. Being an electronics engineer as well as a software developer, the actor model sounds a lot like an asynchronous circuit, which are really difficult to design so they work properly. There is a reason why synchronous design dominates computer architecture, and even this is hard to get right. In synchronous design all messages sent are received at the next clock tick, messages form a stream over pipes. Even so when designing chips we often build a model in 'C' to test the chip against because its so much easier to get sequential code correct. The ideal solution is to take sequential code like 'C' and compile it to a parallel implementation. The reason, from experience, is that humans are just not good at parallel design. This is even more true of asynchronous design compared to synchronous design. I am not disputing that actors model communicating processes running on different nodes of a distributed network well. My concern is more that this architecture is only used for very regular problems where a common kernel (or a few different node types as in a map/reduce machine) are distributed because it is difficult to program this way. Are actors a good model for general computation, or should they only be used when necessary (and when might it be necessary)? Implementing the communication semantics of actorsIt would be interesting to see an implementation of the actor semantics for communication and concurrency. Personally I would like to see a description of the execution flow that is concrete enough to show any similarities and differences from other models. There have been some threads on LtU that have languished on these details. Generally it appears (to me, at least) that there is an interest in seeing a description detailed enough that it could serve as the basis of an implementation. In particular, if I squint a little at the SimpleCounter example (which sadly I cannot cut and paste here directly) then I see a FSM with access to an RNG, a timer, and a message queue. In previous discussions (from memory) I believe that Carl has stated several times that there is no queue. It seems a little unclear exactly what kind of RNG would be used, with respect to fairness and justice. In order to examine the semantics of the message passing and execution flow within an actor - that is erase all value computations and look only at an abstract model of concurrency and communication - then I would sketch out the following as a starting point: Each actor is a set of message handlers and a set of incoming messages.
The execution of an actor proceed locally as is a series of steps in which either:
From this starting point I would then ask:
Functor
Anyone know what this company is about? I see two products, Prevent and Scalor, some mentioning of C, Ocaml, Haskell, LLVM. But little detail. Note: You can run one of their tools, Prevent, on a github project. Moderation on LtUI thought more about the issue of moderation of LtU. I think a reasonable compromise would be to let me moderate the topics I created myself -- this means mostly removing posts I find insulting or otherwise unfit for a polite, constructive discussion. This is both less work than trying to moderate a whole website, less opportunities for making bad choices (those that strongly dislike moderation can think of it as restricted damage), and it makes a kind of sense (if you think of LtU as a distributed blog, as it purported to be at the beginning, letting authors moderate their own blog posts is something reasonable). Would the LtU community agree with this compromise? "Prep" in programming languages"Prep" is a neglected topic in programming languages. Consider the following example of unbounded nondeterminism:
CreateUnbounded.[ ]:Integer ≡
Let aCounter ← SimpleCounter.[ ]。 // let aCounter be a new Counter
Prep □aCounter.go[ ]。 // send aCounter a go message and concurrently
□aCounter.stop[ ]▮ // return the result of sending aCounter a stop message
CreateUnbounded.[ ] is an unbounded integer. As a notational convenience, when an Actor receives message then it can send an arbitrary message to itself by prefixing it with “..” as in the following example:
Actor SimpleCounter[ ]
count ≔ 0, // the variable count is initially 0
continue ≔ True。
implements Counter using
stop[ ] →
count // return count
afterward continue ≔ False¶ // continue is updated to False for the next message received
go[ ] →
continue �
True ⦂ Prep count ≔ count+1⚫。 // increment count
hole ..go[ ] ⍌ // In a hole of the cheese, send go[ ] to this counter
False ⦂ Void▮ // if continue is False, return Void
Interface Counter with
stop[ ] ↦ Integer,
go[] ↦ Void▮
SPLASH 2015 - Workshops Combined Call for Papers/************************************************************************************/ Pittsburgh, Pennsylvania, USA Sponsored by ACM SIGPLAN /************************************************************************************/ Submissions Deadline: August 7, 2015 /************************************************************************************/ SPLASH'15 workshops address a rich variety of well-known and newly emerging research areas and provide a creative and collaborative environment to discuss and solve challenge problems with attendees from industry and research organizations from all over the world. Submission deadlines vary from workshop to workshop. Some workshops will be published in the ACM Digital Library. The current SPLASH'15 workshops program is listed below and the abstracts at the end. ************************************************************** CURRENT WORKSHOP PROGRAM AGERE! - Workshop on Programming based on Actors, Agents, and Decentralized Control DSM - Workshop on Domain-Specific Modeling ETX - Eclipse Technology eXchange Workshop FPW - Future Programming Workshop MobileDeLi - Workshop on Mobile Development Lifecycle PLATEAU – Workshop on Evaluation and Usability of Programming Languages and Tools PROMOTO – Workshop on Programming for Mobile and Touch Parsing@SLE - Workshop on Parsing Programming Languages REBLS - Workshop on Reactive and Event-based Languages & Systems SEPS - Workshop on Software Engineering for Parallel Systems SMART - Smart Software Strategies WODA - Workshop on Dynamic Analysis For additional information, clarification, early feedback, or answers to questions, please contact the Workshop Organizers of your favorite workshops, or the Workshops Chairs, Jan S. Rellermeyer and Du Li, at workshopsplash2015@easychair.org ************************************************************** -Deadlines: - Organizers: - Abstract: ************************************************************** - Deadlines: - Organizers: - Abstract: ************************************************************** - Deadlines: - Organizers: - Abstract: ************************************************************** - Deadlines: - Organizers: - Abstract: ************************************************************** - Deadlines: - Organizers: - Abstract: ************************************************************** - Deadlines: - Organizers: - Abstract: ************************************************************** - Deadlines: - Organizers: - Abstract: ************************************************************** - Deadlines: - Organizers: - Abstract: ************************************************************** - Deadlines: - Organizers: Reactive programming and event-based programming are two closely related programming styles that are becoming ever more important with the advent of advanced HPC technology and the ever increasing requirement for our applications to run on the web or on collaborating mobile devices. A number of publications on middleware and language design — so-called reactive and event-based languages and systems (REBLS) — have already seen the light, but the field still raises several questions. For example, the interaction with mainstream language concepts is poorly understood, implementation technology is in its infancy and modularity mechanisms are almost totally lacking. Moreover, large applications are still to be developed and patterns and tools for developing reactive applications is an area that is vastly unexplored. ************************************************************** - Deadlines: - Organizers: - Abstract: ************************************************************** - Deadlines: - Organizers: - Abstract: Y2K bugs: In the late 1990s, software developers and managers were furiously working to analyze and fix potential “Y2K bugs.” We all knew that there were software applications that might fail on January 1, 2000, but no one was sure how we would manage to fix all of these defects in time. ************************************************************** - Deadlines: - Organizers: - Abstract: /************************************************************************************/ By craiganslow at 2015-07-18 00:12 | LtU Forum | login or register to post comments | other blogs | 2530 reads
Research vs implementation, theory vs practice, and LtUThere's a conflict between doing research and creating usable programming languages, and different people have different interests. Instead of discussing this inside other topic, it seems this topic deserves its own thread, because the question is interesting. I'm not sure there's something new to say on the topic — this is an old discussion. And I guess that some of us will still not be personally interested in research. But I'd like to not hear the wrong arguments against research. I don't want to hear that research will never be useful in practice. I'm fine with hearing, say, that if you want something now, theoretical research is often not what you should look into — theoretical researchers figure out what you should use in a few years or decades. I'll reserve my actual answers for the thread. |
Browse archives
Active forum topics |
Recent comments
5 days 2 hours ago
5 days 23 hours ago
1 week 4 hours ago
1 week 4 hours ago
1 week 5 days ago
1 week 5 days ago
1 week 5 days ago
4 weeks 5 days ago
5 weeks 4 days ago
5 weeks 4 days ago