Curl (język programowania) - Curl (programming language)

Kędzior
Zwijanie logo.gif
Paradygmat wieloparadygmat : obiektowy , znaczniki
Zaprojektowany przez Steve Ward , MIT
Deweloper Curl, Inc., Sumisho Computer Systems Corp., SCSK Corporation
Po raz pierwszy pojawiły się 1998
Wersja stabilna
8.0.10 / 30 sierpnia 2019 ; 21 miesięcy temu ( 2019-08-30 )
Dyscyplina pisania silny
OS Linux , MacOS , Windows
Stronie internetowej www .curl .com
Dialekty
Żaden
Wpływem
HTML , JavaScript , Lisp

Curl to refleksyjny, obiektowy język programowania dla interaktywnych aplikacji internetowych, którego celem jest zapewnienie płynniejszego przejścia między formatowaniem a programowaniem. Umożliwia osadzanie złożonych obiektów w prostych dokumentach bez konieczności przełączania się między językami programowania lub platformami programistycznymi. Implementacja Curl początkowo składała się tylko z interpretera, ale później dodano kompilator.

Curl łączy znaczniki tekstowe (jak w HTML ), skrypty (jak w JavaScript ) i intensywne przetwarzanie (jak w Java , C# lub C++ ) w ramach jednej ujednoliconej struktury. Jest używany w wielu wewnętrznych aplikacjach korporacyjnych, B2B i B2C .

Programy Curl mogą być kompilowane w aplety Curl, które są przeglądane za pomocą Curl RTE, środowiska uruchomieniowego z wtyczką dla przeglądarek internetowych . Obecnie jest obsługiwany w systemie Microsoft Windows . Linux i macOS zostały usunięte 25 marca 2019 r. (począwszy od wersji 8.0.8). Curl obsługuje „odłączone aplety” , czyli aplet wdrażany w sieci, który działa na pulpicie użytkownika niezależnie od okna przeglądarki, podobnie jak w Silverlight 3 i Adobe AIR .

Architektura

Język Curl próbuje rozwiązać długotrwały problem: różne bloki, z których składa się każdy nowoczesny dokument internetowy, najczęściej wymagają szalenie różnych metod implementacji: różnych języków, różnych narzędzi, różnych frameworków, często zupełnie różnych zespołów. Ostatnią – i często najtrudniejszą – przeszkodą było skomunikowanie wszystkich tych bloków w spójny sposób. Curl stara się ominąć te problemy, zapewniając spójny interfejs syntaktyczny i semantyczny na wszystkich poziomach tworzenia treści internetowych: od prostego HTML do złożonego programowania obiektowego .

Curl jest językiem znaczników, takim jak HTML — to znaczy, zwykły tekst jest wyświetlany jako tekst; jednocześnie Curl zawiera obiektowy język programowania, który obsługuje wielokrotne dziedziczenie . Aplikacje Curl nie muszą obserwować separacji informacji, stylu i zachowania, które zostały narzucone przez HTML, kaskadowe arkusze stylów (CSS) i JavaScript, chociaż ten styl programowania może być używany w Curl w razie potrzeby.

Chociaż język Curl może być używany jako zamiennik HTML do prezentacji sformatowanego tekstu, jego możliwości sięgają aż do skompilowanego, silnie typizowanego, obiektowego języka programowania systemowego. Zarówno tworzenie (na poziomie HTML), jak i konstrukcje programistyczne Curl można rozszerzyć w kodzie użytkownika. Język został zaprojektowany tak, aby aplikacje Curl mogły być kompilowane do kodu natywnego komputera klienckiego przez kompilator just-in-time i uruchamiane z dużą szybkością. Aplety Curl można również napisać tak, aby działały w trybie off-line po odłączeniu od sieci ( czasami połączone przetwarzanie ). W rzeczywistości Curl IDE to aplikacja napisana w Curl.

Składnia

Prosty aplet Curl dla HelloWorld może być

 {Curl 7.0, 8.0 applet}
 {text
    color = "blue",
    font-size = 16pt,
    Hello World}

Ten kod zostanie uruchomiony, jeśli użytkownik ma zainstalowaną co najmniej jedną z wersji Curl 7.0 lub 8.0.

Curl udostępnia zarówno makra, jak i procedury tekstowe, oprócz procedur anonimowych i metod nazwanych. Alternatywą użycia akapitu procedury tekstowej byłoby:

 {paragraph
    paragraph-left-indent=0.5in,
    {text color = "red", font-size = 12pt,
      Hello}
    {text color = "green", font-size = 12pt,
      World}}

Ostatnio ten styl układu został zaadoptowany przez "konstruktorów" w języku Groovy dla JVM, ale jest również znany użytkownikom CSS lub Tcl/Tk. Większość funkcji aplikacji internetowych zaimplementowanych teraz za pomocą kombinacji bibliotek JavaScript + HTML + CSS jest już dostępnych w języku Curl, w tym funkcje zwykle związane z Prototype + script.aculo.us, takie jak panele akordeonowe.

Curl ustawia wywołania zwrotne w sposób przyjęty również przez Groovy'ego:

 {CommandButton width=100pt,
    height = 50pt,
    label = {center {bold Invokes an event handler when clicked}},
    control-color = "orange",
    || Attach the following event handler to this CommandButton
    {on Action do
        {popup-message
            title = "Your Message",
            "This is a user message dialog."
        }
    }}

Komentarze Curl używają pionowego paska w kilku odmianach. Najprostszy jest następujący:

 {text A comment can be on a line by itself,
 || A comment on a line by itself
 or it can be at the end || A comment on the same line as code
 of a line.}

Zwijanie jako lekkie znaczniki

Ponieważ Curl zapewnia zarówno procedury tekstowe zdefiniowane przez użytkownika, jak i arkusze stylów, Curl może być łatwo używany jako lekki znacznik specyficzny dla domeny. Główną zaletą nad znacznikami HTML w postaci zwykłego tekstu jest to, że kodowanie tekstu można ustawić na UTF-8, a tekst wprowadzany w edytorze obsługującym Unicode bez żadnych znaków ucieczki (jak JavaScript, Curl jest przyjazny dla Unicode). Przykładem poezji byłoby:

 {poem || wraps entire poem
    {stanza  || first verse here in any language
    }
    {stanza  || another verse here in any language
    }
 }

które można początkowo zaimplementować, definiując znaczniki wiersza i zwrotki jako formaty tekstu akapitowego. Stanzę można dodatkowo udoskonalić, aby zawierała ukrytą kotwicę nawigacji do nawigacji po stronie za pomocą Curl {miejsce docelowe}, które samo w sobie jest procedurą tekstową.

Te same znaczniki mogą być używane do różnych wyników, ponieważ można stylizować tekst tak, aby był widoczny w jednym kontekście i niewidoczny w innym. Curl umożliwia również włączenie plików najwyższego poziomu, dzięki czemu tekst źródłowy w znacznikach może być zawarty w różnych plikach nadrzędnych. Na przykład w edukacji można utworzyć plik źródłowy pytań testowych i dołączyć go zarówno do wersji tekstu dla ucznia, jak i nauczyciela.

Zobacz też

  • Homoikonicity : Curl jest zarówno językiem programowania, jak i formatem danych

Bibliografia

Linki zewnętrzne