Cobra (programming language)

CobraParadigm| Multi-paradigm: object-oriented

|

Designed by| Charles Esterbrook
Developer| Cobra Language LLC
First appeared| 2006; 20 years ago (2006)
Final release|

0.9.6 / December 23, 2013; 12 years ago (2013-12-23)

Typing discipline| strong, static, dynamic, inferred
OS| Microsoft .NET, Mono
License| MIT
Filename extensions| .cobra
Website| cobra-language.com
Influenced by
Python, Eiffel, C#, Objective-C

Cobra is a discontinued 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 support for unit tests and contracts.[4] It has lambda expressions, closures, list comprehensions, and generators.[6]

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

## Contents

* 1 Features
* 2 Examples
* 2.1 Hello World
* 2.2 A simple class
* 3 References
* 4 External links

## Features

Object-oriented

* Namespaces
* Classes, interfaces, structs, extensions, enumerations
* Methods, properties, indexers
* Mixins, extension methods
* Generics, attributes

Quality control

* Contracts, assertions
* Unit tests, docstrings
* Compile-time nil-tracking

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

* Exception handling
* Postmortem exception report
* Garbage collection

Scripting conveniences

* Clean syntax
* Dynamic binding
* One-step run
* Shebang line (`#!`)

Miscellaneous

* Documentation tool (`cobra -doc`)
* Syntax highlighting tool (`cobra -highlight`)

## Examples

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

### Hello World

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. http://cobra-language.com. Retrieved 2012-09-26.
2. ↑ Charles Esterbrook (Jan 28, 2008). Lang.NET Symposium 2008 – The Cobra Programming Language. Microsoft. Archived from the original (wmv) on March 26, 2009. Retrieved 2010-08-31.
3. ↑ Bridgwater, Adrian (5 March 2008). "Cobra takes a bite at open source". ZDNet UK. http://www.zdnet.co.uk/news/application-development/2008/03/05/cobra-takes-a-bite-at-open-source-39362140/. Retrieved 2010-08-31.
4. ↑ 4.0 4.1 Neward, Ted (June 2009). "Reaping the Benefits of Cobra". MSDN Magazine. http://msdn.microsoft.com/en-us/magazine/dd882513.aspx.
5. ↑ Erickson, Jonathan (April 2008). "Was George Costanza a Computer Programmer?". Dr. Dobb's Journal. http://www.ddj.com/architect/207400254.
6. ↑ Morris, Richard (April 2010). "Chuck Esterbrook: Geek of the Week". Simple-talk. http://www.simple-talk.com/opinion/geek-of-the-week/chuck-esterbrook-geek-of-the-week/.
7. ↑ Krill, Paul (Feb 7, 2008). "Cobra language slithering to open source". InfoWorld. http://www.infoworld.com/d/developer-world/cobra-language-slithering-open-source-202. Retrieved 2010-08-31.
8. ↑ "The Cobra Programming Language". Cobra Language LLC. http://cobra-language.com/downloads/source/. Retrieved 2008-02-29.

## External links

* The Cobra blog by Charles Esterbrook
* Cobra News Index

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Cobra (programming language). Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Cobra_(programming_language)&oldid=40363"