tag:blogger.com,1999:blog-8383004232931899216.post5265333368541815058..comments2023-11-01T11:47:57.046-04:00Comments on Designing ParaSail, a new programming language: Resolving names in ParaSailTucker Tafthttp://www.blogger.com/profile/08866496974237052847noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-8383004232931899216.post-10293009359532047212009-12-30T15:59:44.249-05:002009-12-30T15:59:44.249-05:00I would identify the major influences coming from ...I would identify the major influences coming from Pascal, Modula-2/3, Eiffel, ML/CAML, and Ada, but with a desire to be easily understandable by someone familiar with Java, C#, C++, CLOS, etc. You are right that the surface syntax is not fundamental, but it is hard to talk for long without one for examples, etc. It may look like Ada, but in fact that is probably more because Ada shares a common heritage with Pascal, Modula, Eiffel, and ML/CAML. The module-level semantics are pretty different from Ada, while the basic control-flow syntax comes very directly from the Pascal family (which might more properly be called the "Algol" family).<br /><br />A few overall key characteristics: <br /><br />There are only two kinds of modules, interfaces (specs) and classes (bodies). Every class has an interface, every non-abstract interface has at least one class. All modules are "generic templates" in the sense that they have formal "module" parameters which can be types, operations, or values. A type is produced by "instantiating" an interface by giving actual module parameters to correspond to its formal module parameters. There are no global variables -- access to variables is only via parameters. <br /><br />Annotations (specified inside "{...}") may appear in various places, and can act as preconditions, postconditions, or simple assertions. <br /><br />Parameters are evaluated in parallel, and statements are executed in parallel when separated by "||" or when nonconflicting; for-loop iterations are by default in parallel.Tucker Tafthttps://www.blogger.com/profile/08866496974237052847noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-64552610187909842512009-12-30T15:36:38.740-05:002009-12-30T15:36:38.740-05:00At some point you might post a compare-and-contras...At some point you might post a compare-and-contrast discussion of ParaSail vs. one or more existing languages. It seems clear that much of ParaSail's structure is inherited from Ada - for those of us familiar with Ada, it would be interesting to know how ParaSail is different, and why ParaSail could not be implemented as an extension to Ada.<br /><br />As you said in an earlier posting, concrete examples can enhance understanding - I am suggesting that a comparison to an existing "concrete" language might also enhance understanding (at least mine ;-)... <br /><br />-Fred MuellerChief-Dweebhttps://www.blogger.com/profile/07560190018018577319noreply@blogger.com