Cobra (limbaj de programare)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 9 mai 2018; verificările necesită 6 modificări .
Cobra
Clasa de limba multi- paradigma :
orientat pe obiecte
Aparut in 2006
Autor Chuck Esterbrook
Extensie de fișier .cobra
Eliberare 0.9.6 ( 23 decembrie 2013 )
Tip sistem static , strict , dinamic , inferență de tip
Implementări majore .NET Framework , Mono
A fost influențat Python , Eiffel , C# , Objective-C , D
Licență MIT
Site-ul web cobra-language.com

Cobra  este un limbaj de programare de nivel înalt orientat pe obiecte de uz general . Proiectat de Chuck Esterbrookpentru platformele .NET și Mono . Sintaxa limbajului se bazează pe sintaxa lui Python , folosind indentarea pentru a evidenția sintactic blocurile de cod. Limbajul acceptă atât tastare statică, cât și dinamică , suport pentru programarea contractelor și testarea unitară încorporată . Are capacitatea de a utiliza expresii lambda , închideri , expresii de listă și generatoare . Cobra permite o dezvoltare rapidă și o performanță ridicată [1] .

Implementarea limbajului Cobra este open source , lansată sub licența MIT la 29 februarie 2008, permițând utilizarea și modificarea gratuită a codului.

Sintaxă și semantică

Docstrings

Cobra oferă un mecanism pentru documentarea codului DocString.

class Utils shared def countChars ( s ca String , c ca char ) as int """ Returnează numărul de caractere c din șirul s. """ count = 0 pentru ch în s dacă ch == c count += 1 return count

Testarea unitară

Vă permite să verificați corectitudinea unei anumite clase, proprietăți sau metode a codului sursă al programului.

class Utils shared def countChars ( s ca String , c ca char ) as int """ Returnează numărul de caractere c în șirul s """ test assert Utils . countChars ( '' , c 'x' ) == 0 assert Utils . countChars ( 'x' , c 'x' ) == 1 assert Utils . countChars ( 'X' , c 'x' ) == 0 assert Utils . countChars ( ' ! ! ' , c '!' ) == 2 body count = 0 pentru ch în s dacă ch == c count += 1 return count

Programare contract

Oferă o intrare validă pentru componenta apelată, ajutând la identificarea erorilor mai devreme, atunci când sunt mai ușor de diagnosticat.

class Customer var _contacts as List < of Contact > get contacts from var def addContact ( contact as Contact ) require contact not in . contact de contact . nume de contact . clientul nu este asigurat de contact . client == asta . contacte . numără == vechi . contacte . numărare + 1 contact corporal . client = this _contacts . adauga ( contact )

Vizionarea null la compilare

În multe cazuri, evită erorile pointerului nul în timpul execuției. În Cobra, null poate fi trecut dacă este permis un tip nullabil: un singur sufix de semn de întrebare (?).

class Foo def bar ( s as String ? ) if s # la fel ca "dacă s nu este zero" print Utils . countChars ( s , c 'x' )

Influența altor limbi asupra Cobra [2]

Cobra a fost influențat de multe limbaje de programare:

IDE

Exemplu

Bună lume exemplu:

class Hello def main print 'Bună, lume!'

Exemplu de generator de numere Fibonacci:

clasa Fib def compute ( count as int ) as List < of int > is shared list = List < of int > () a , b = 0 , 1 for i in count list . se adaugă ( b ) a , b = b , a + b lista de întoarcere class Program def main i = 1 pentru n în Fib . calculează ( 10 ) imprimă '[i]. [n]' i += 1

Exemplu de clasă:

persoana de clasa var _name ca String var _age ca int cue init ( nume ca String , vârsta ca int ) _name , _age = nume , vârstă def toString as String is override return „Numele meu este [_name] și am [_age] ani”

Note

  1. Crill, Paul . Cobra language slithering to open source , InfoWorld  (7 februarie 2008). Arhivat din original pe 8 iunie 2011. Preluat la 31 august 2010.
  2. Prezentarea limbajului la Lang .NET Symposium 2008  (downlink) Limbajul de programare Cobra - Chuck Esterbrook

Link -uri