4 ms·
ParaSail Programming Language: parallel programming language
- dang 8y agoThere's also a paper about this at https://arxiv.org/pdf/1902.00525v1 https://arxiv.org/pdf/1902.00525v1 (via https://news.ycombinator.com/item?id=19121968 https://news.ycombinator.com/item?id=19121968, which we marked as a dupe).
- deleted 8y ago[deleted]
- azhenley 8y agoFunny that this lands on the front page. I still check the blog regularly (just yesterday!) even though there hasn't been a post in over a year. And now there is a new post! http://parasail-programming-language.blogspot.com/2019/02/release-80-of-parasail-interpreter.html http://parasail-programming-language.blogspot.com/2019/02/re... I was starting to think the language was dead.
- pjmlp 8y agoI used to check the discussion groups every now and then. They were a bit more lively.
- jpgvm 8y agoThe syntax seems a bit old school for my liking but otherwise seems nice. Interesting to see where this goes.
- azhenley 8y agoThe project started 9.5 years ago.
- erezsh 8y agoWhat an odd choice, for a terse language with modern syntactic sugar to use "end func Sum_Of_Squares"
- pmontra 8y agoYep, and also if then, case of, end if... Hopefully an editor can color out the less relevant keywords and maybe autotype them. It's strange that the home page of a parallel language doesn't give an example of parallel code. Check https://elixir-lang.org/ https://elixir-lang.org/ instead. Does anybody use ParaSail here? What are its pros and cons?
- oblio 8y ago> it's strange that the home page of a parallel language doesn't give an example of parallel code Read the page again :) Func Sum_Of_Squares(N : Int) -> Int is // Built-in and inherently parallel map-reduce // Initial value is enclosed with angle brackets return (for I in 1 .. N => <0> + I ** 2) end func Sum_Of_Squares
- pmontra 8y agoThanks! Invisible parallel code is a good idea. Less code to write.
- dmlorenzetti 8y agoIt does make the code a little verbose, but in my experience with this (in modern Fortran), it can be rather nice. Explicitly tagging the construct you are closing makes it easier to understand long swaths of code (where the start of a loop or function may have disappeared off the top of the page by the time you scroll to the end of the loop/function). It can also make compiler error messages more helpful. I don't see it in the ParaSail code samples, but where this really shines in Fortran is letting you name loops. This makes the control structure much easier to understand (again, especially in longer loops). So you can have code like loop_timesteps: do ... loop_converge: do ... loop_actors: do ... end do loop_actors ... end do loop_converge ... end do loop_timesteps Now to break out of a loop, you can be explicit about which one you want to break out of. Not only does that help with code clarity, it also allows you to jump out of a deeper nesting than just the immediate one, which means you don't have to set flags, or repeat tests, in order to get to where you want to go. I realize that most programmers on HN will be thinking "if I had a loop or function that long, I would break it up into smaller functions, and express my nesting that way." That's generally good advice, but it's not always useful in numerical code (which ParaSail seems to target). In numerical code, you tend to run through those loops a lot of times, and you tend to have a lot of local variables (for example, in a physics calculation you might take primary variables like pressure, temperature, and mass fractions, and use them to find a lot of related values like humidity ratio and molar concentration and gradient estimates &etc). So the overhead of making large numbers of function calls with long parameter lists can become too much.
- pmontra 8y agoPlease fix the CSS: I have to scroll horizontally every single line. I stopped at the first one (sorry to be negative.) Tested with Firefox and Chrome on Android. Firefox reader mode doesn't work on that site. Opera has text reflow so it works around the CSS. BTW, why in 2019 Opera is still the only browser with text reflow?
- Stratoscope 8y agoI was able to read it on my Android device in Chrome by using landscape mode. Until I scrolled down a little. Then a huge static navigation popup appeared taking up 40% of the screen! Even better, the page somehow disables Chrome's normal behavior of hiding the browser navigation bar when you scroll. (Does anyone know how they did that? Not that I'd ever want to, just curious.) So that's another 20% of the screen gone, leaving only 40% of the screen for content. Ouch.
- AnaniasAnanas 8y agoI really hate it how these websites try to limit the amount of context that can be shown horizontally. If I wanted to see less stuff in a line I would just resize my browser, while if I am using a phone I won't be seeing long lines anyway.
- asimpletune 8y agoHaving built in pre/post conditions is pretty nice.
- johnisgood 8y agoYou might want to look into Ada and SPARK. It allows constraint-based programming, formal verification to verify your program's correctness, and so on. https://www.adacore.com/about-spark https://www.adacore.com/about-spark https://en.wikibooks.org/wiki/Ada_Programming/Contract_Based_Programming https://en.wikibooks.org/wiki/Ada_Programming/Contract_Based... https://www.adacore.com/gems/gem-31 https://www.adacore.com/gems/gem-31 https://www.adacore.com/uploads/books/pdf/AdaCore-Tech-Cyber-Security-web.pdf https://www.adacore.com/uploads/books/pdf/AdaCore-Tech-Cyber... On top of that, Ada was designed with parallel programming in mind as well, so there are language constructs built in to make your job easier.
- imglorp 8y agoMade me think of SAIL - Stanford AI Language. The wiki doesn't mention another huge body of SAIL code, which was used by VLSI Technology for IC routing and placement. They got bought by Phillips, and maybe that stuff is still running, who knows. https://en.wikipedia.org/wiki/SAIL_(programming_language) https://en.wikipedia.org/wiki/SAIL_(programming_language)
- lucas_membrane 8y agoI tried to get the released 8.zip file: drive.google.com refused to connect Too popular? AdaCore maintains ParaSail; why using google instead of Ada Web Server?
- fake-name 8y agoActual link: https://adacore.github.io/ParaSail/ https://adacore.github.io/ParaSail/ Current link is a page that has a frame pointing to the actual website. uMatrix blocks it, because it blocks cross-site frames by default.