Vigil, the eternal morally vigilant programming language

Discussion in 'Python' started by Alain Ketterlin, Jan 7, 2013.

  1. 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.
    Alain Ketterlin, Jan 7, 2013
    #1
    1. Advertising

  2. On Tue, Jan 8, 2013 at 3:01 AM, Alain Ketterlin
    <-strasbg.fr> 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
    Chris Angelico, Jan 7, 2013
    #2
    1. Advertising

  3. Alain Ketterlin

    Terry Reedy Guest

    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
    Terry Reedy, Jan 8, 2013
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?UGF1bA==?=

    Eternal Debate: Cookies vs. Sessions vs. QueryString

    =?Utf-8?B?UGF1bA==?=, Dec 9, 2005, in forum: ASP .Net
    Replies:
    6
    Views:
    4,666
    m.posseth
    Dec 12, 2005
  2. Ike

    Preventing eternal hang

    Ike, Dec 20, 2004, in forum: Java
    Replies:
    1
    Views:
    332
    Andrea Desole
    Dec 20, 2004
  3. Ed
    Replies:
    24
    Views:
    973
    Dimitri Maziuk
    Mar 27, 2006
  4. Casey Hawthorne
    Replies:
    4
    Views:
    984
    Jarek Zgoda
    Aug 4, 2006
  5. BruceS

    eternal-september & Pan

    BruceS, Aug 27, 2012, in forum: C Programming
    Replies:
    8
    Views:
    465
    Jorgen Grahn
    Aug 28, 2012
Loading...

Share This Page