tag:blogger.com,1999:blog-5722310642266356003.post2859294485476650417..comments2024-01-07T23:21:32.676+01:00Comments on The Axis of Eval: When I see that a new language makes a difference between statements and expressionsUnknownnoreply@blogger.comBlogger3125tag:blogger.com,1999:blog-5722310642266356003.post-39122453236319204142012-07-21T19:21:20.864+02:002012-07-21T19:21:20.864+02:00It is simple: Expressions should have no side effe...It is simple: Expressions should have no side effects, while statements are allowed to have them. This makes reasoning about code a lot easier, especially for programmers without formal education and the ones who care about formal semantics and verification. If a language has no side effects in expressions it makes the formal semantics of a language simpler and you can define a wp-calculus directly on the statement level.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5722310642266356003.post-75621890315143813442012-07-11T20:46:19.387+02:002012-07-11T20:46:19.387+02:00Right. CBPV quickly came to mind before I pushed t...Right. CBPV quickly came to mind before I pushed the "publish" button.Manuel Simonihttps://www.blogger.com/profile/07840673741485280526noreply@blogger.comtag:blogger.com,1999:blog-5722310642266356003.post-8800579722410650402012-07-11T20:38:56.067+02:002012-07-11T20:38:56.067+02:00'd point out that my sometimes-hobby horse, Ca...'d point out that my sometimes-hobby horse, Call-By-Push-Value, definitely distinguishes between statements (code associated with negative types) and expressions (code associated with positive types). Certainly I think that CPBV has the potential to guide us to do this in a way that's more principled than what's frequently done in practice, but there are potentially answers to Neil Patrick Harris's emphatic question.Robhttps://www.blogger.com/profile/05106663398227635415noreply@blogger.com