Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Vigil, the eternal morally vigilant programming language

Reply
Thread Tools

Vigil, the eternal morally vigilant programming language

 
 
Alain Ketterlin
Guest
Posts: n/a
 
      01-07-2013

I just came across Vigil, an extension to python for serious software
engineers, at https://github.com/munificent/vigil and thought everybody
in this group would be interested (sorry if it has been announced
before).

From README:

| Vigil is a very safe programming language, and an entry in the January
| 2013 PLT Games competition.
|
| Many programming languages claim to take testing, contracts and safety
| seriously, but only Vigil is truly vigilant about not allowing code
| that fails to pass programmatic specifications.

Enjoy.

-- Alain.
 
Reply With Quote
 
 
 
 
Chris Angelico
Guest
Posts: n/a
 
      01-07-2013
On Tue, Jan 8, 2013 at 3:01 AM, Alain Ketterlin
<> wrote:
>
> I just came across Vigil, an extension to python for serious software
> engineers, at https://github.com/munificent/vigil and thought everybody
> in this group would be interested (sorry if it has been announced
> before).


It's the logical derivation of the principle that every program, once
written, could be shortened by at least one instruction and contains
at least one bug. From that, you can deduce that every program can be
logically reduced to a single instruction that doesn't work.

Vigil assists you with this logical reduction.

ChrisA
 
Reply With Quote
 
 
 
 
Terry Reedy
Guest
Posts: n/a
 
      01-08-2013
On 1/7/2013 11:01 AM, Alain Ketterlin wrote:
>
> I just came across Vigil, an extension to python for serious software
> engineers,


I hope that last part comes from a sense of humor.

> at https://github.com/munificent/vigil and thought everybody
> in this group would be interested (sorry if it has been announced
> before).
>
> From README:
>
> | Vigil is a very safe programming language, and an entry in the January
> | 2013 PLT Games competition.
> |
> | Many programming languages claim to take testing, contracts and safety
> | seriously, but only Vigil is truly vigilant about not allowing code
> | that fails to pass programmatic specifications.


While the language is a joke (Procrustes would be a somewhat better
name), the example illustrates the near uselessness of contract
checking, at least for functions. The example fib(n) function 'swears'
that the answer is a count (not negative). Ha, ha, very funny. A simple
'return 0' would satisfy that useless contract*. A correct fib(n)
function must actually calculate fib(n), and in practice, that is not
possible to check. Even checking that sorted(iterable) is correct
(outside a test situation) is harder than it might first seem#.

* In any of the many languages that use biased residue classes as a
substitute for real integers, positive + positive = positive is not so
trivial. So the function must return a negative to signal bad input or
raise an exception either directly or by an input condition. The
advantage of the directly exception is that the exception message can be
tailored to the audience and situation. [Vigil would simply excise the
calling function.]

# Given sorted(iterable) where iterable gets some number of comparable
items from stdin, how is the contract checker to determine that the
output is indeed a permutation of the unmutated input items, before
checking that they are are actually sorted.

--
Terry Jan Reedy

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Sorry for interrupt,because my mother language is not English,it maybe a little confused to read the c programming language. Zhang Yuan C Programming 6 06-14-2012 04:35 AM
Can Your Programming Language Do This? Joel on functional programming and briefly on anonymous functions! Casey Hawthorne Python 4 08-04-2006 05:23 AM
Eternal Debate: Cookies vs. Sessions vs. QueryString =?Utf-8?B?UGF1bA==?= ASP .Net 6 12-12-2005 07:43 PM
Preventing eternal hang Ike Java 1 12-20-2004 01:39 PM
If only MS were this vigilant in persuing cheaters!!! Sandworm MCSE 39 07-02-2004 05:27 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57