Jump to content

Cobra (programming language)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 76.174.233.82 (talk) at 18:18, 24 May 2013. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Cobra
ParadigmMulti-paradigm: object-oriented
Designed byCharles Esterbrook
DeveloperCobra Language LLC
First appeared2006
Stable release
0.9.4 / May 24, 2013 (2013-05-24)
Typing disciplinestrong, static, dynamic, inferred
OSMicrosoft .NET, Mono
LicenseMIT
Filename extensions.cobra
Websitehttp://cobra-language.com/
Influenced by
Python, Eiffel, C#, Objective-C

Cobra is a general-purpose, object-oriented programming language.[1] Cobra is designed by Charles Esterbrook, and runs on the Microsoft .NET and Mono platforms.[2] It is strongly influenced by Python, C#, Eiffel, Objective-C, and other programming languages.[3] It supports both static and dynamic typing.[4][5] It has first class support for unit tests and contracts.[4] It has lambda expressions, closures, list comprehensions, and generators.[6] Cobra provides both rapid development and performance in the same language.[7]

Cobra is an open-source project; it was released under the MIT License on February 29, 2008.[8]

Updates are posted to the Cobra news forum with progress on features, fixes, documentation and related projects since the last update.[9]

Features

Object-oriented
Quality control
Expressiveness
  • Static and dynamic binding
  • List, dictionary, and set literals
  • in and implies operator
  • for expressions
  • Slicing
  • Interpolated strings
  • Compile-time type inference
  • Lambdas and closures
General productivity
Scripting conveniences
  • Clean syntax
  • Dynamic binding
  • One-step run
  • Shebang line (#!)
Miscellaneous
  • Doc tool (cobra -doc)
  • Syntax highlighting tool (cobra -highlight)

Examples

The following examples can be run from a file using cobra <filename>.

class Hello
    def main
        print 'Hello, World'


A simple class

class Person

    var _name as String
    var _age as int

    cue init(name as String, age as int)
        _name, _age = name, age

    def toString as String is override
        return 'My name is [_name] and I am [_age] years old'

References

  1. ^ "The Cobra Programming Language". Cobra Language LLC. Retrieved 2012-09-26.
  2. ^ Charles Esterbrook (Jan 28, 2008). Lang.NET Symposium 2008 – The Cobra Programming Language (wmv). Microsoft. Retrieved 2010-08-31.
  3. ^ Bridgwater, Adrian (5 March 2008). "Cobra takes a bite at open source". ZDNet UK. Retrieved 2010-08-31. {{cite news}}: Cite has empty unknown parameter: |2= (help); Text "Application Development" ignored (help)
  4. ^ a b Neward, Ted (June 2009). "Reaping the Benefits of Cobra". MSDN Magazine.
  5. ^ Erickson, Jonathan (April 2008). "Was George Costanza a Computer Programmer?". Dr. Dobb's Journal.
  6. ^ Morris, Richard (April 2010). "Chuck Esterbrook: Geek of the Week". simple-talk.
  7. ^ Krill, Paul (Feb 7, 2008). "Cobra language slithering to open source". InfoWorld. Retrieved 2010-08-31.
  8. ^ "The Cobra Programming Language". Cobra Language LLC. Retrieved 2008-02-29.
  9. ^ Cobra News Forum