ML: Rozpocznij od metaprogramowania

Ujawnienie: Twoje wsparcie pomaga utrzymać działanie witryny! Pobieramy opłatę za polecenie niektórych usług, które zalecamy na tej stronie.


ML oznacza „metajęzyk”, a ML należy do rodziny języków programowania ogólnego przeznaczenia.

Podobnie jak wiele wczesnych języków programowania, ML został stworzony przez społeczność akademicką do celów badawczych, a jego funkcje wpłynęły na wiele języków programowania, które podążyły jego śladami.

Co to jest ML?

ML to wieloparadygmat, rozszerzony funkcjonalny język programowania. Często jest również określany jako „nieczysty” język funkcjonalny, ponieważ pozwala na skutki uboczne. Najważniejsze funkcje ML są zbudowane na funkcjonalnym rdzeniu.

Jest to szczególnie przydatne w metaprogramowaniu – pisaniu programów, które manipulują innymi programami, i taki jest pierwotny cel ML. ML jest dobrze znany ze swojego systemu czcionek Hindley-Milner, który może automatycznie przypisywać typy większości wyrażeń bez wyraźnych adnotacji typu.

ML jest używany do wielu różnych programów:

  • Zastosowania naukowe;
  • Dowody twierdzeń;
  • Analizatory, kompilatory, języki programowania;
  • Aplikacje systemów finansowych;
  • Bioinformatyka i genealogiczne bazy danych.

ML jest również stosowany w edukacji, we wstępnych kursach programowania w celu zademonstrowania podstawowej logiki programowania i metod.

Krótka historia ML

Język programowania ML został opracowany w latach 70. XX wieku przez Robina Milnera i jego współpracowników z University of Edinburgh podczas pracy nad Logic for Computable Functions (LCF) – interaktywnym automatem do sprawdzania twierdzeń. LCF został zaimplementowany w ML i wprowadzony w 1972 roku. Składnia ML została zainspirowana językiem programowania ISWIM.

ML ewoluował następnie w kilka języków programowania, wszystkie z rodziny ML. Dwa najważniejsze obecnie dialekty to Standard ML (SML) i OCaml. Funkcje i pomysły ML wpłynęły na wiele innych języków, takich jak Cyclone, Elm, Nemerle, Haskell, C ++ i inne.

funkcje

Jest to język ściśle napisany, wykorzystujący system typowania Hindley-Milner w celu zapewnienia bezpieczeństwa typu. W rezultacie dobrze napisany program ML nie powoduje błędów typu środowiska wykonawczego. Jego składnia i kontrola przepływu zasadniczo różnią się od języków typu C, więc nie znajdziesz trywialnego mapowania między kodem C i ML.

ML posiada system automatycznego zarządzania pamięcią poprzez zbieranie pamięci, gdzie pamięć jest automatycznie przydzielana i zwalniana przez kompilator. Obsługiwany jest polimorfizm parametryczny, co oznacza, że ​​możesz napisać pojedynczą funkcję polimorficzną, która może przyjąć parametr dowolnego zgodnego typu.

ML ma funkcje pierwszej klasy i leksykalne zamknięcia, dzięki czemu bardzo łatwo jest skomponować wiele funkcji, co może być bardzo skomplikowane w imperatywnych językach programowania.

ML obsługuje również polimorficzne rekursywne typy danych z dopasowaniem wzorca i ma doskonały system modułów skoncentrowany wokół struktur i podpisów. Wykorzystuje przede wszystkim chętną ocenę, co oznacza, że ​​wszystkie podwyrażenia są zawsze oceniane, podczas gdy leniwa ocena może być nadal osiągnięta poprzez użycie zamknięć.

Rozpoczęcie pracy z ML

Jeśli masz wcześniejsze doświadczenie w metodach programowania i logice, rozpoczęcie programowania ML nie powinno stanowić większego wyzwania. Jeśli jednak ML jest twoim pierwszym wprowadzeniem do programowania, powinieneś zacząć od podstawowych samouczków i kursów, zanim przejdziesz do bardziej wymagających.

Twoje środowisko programistyczne ML

Oczywiście będziesz musiał skonfigurować własne środowisko programistyczne ML. Sugerujemy użycie pochodnej i kompilatora Standard ML of New Jersey (SML / NJ), ponieważ jest to pierwszy i najpopularniejszy kompilator dla języka programowania ML.

SML / NJ jest obecnie obsługiwany na trzech dużych platformach systemów operacyjnych: Mac OS X, Linux i Windows. Innymi słowy, nie powinieneś mieć problemów z uruchomieniem środowiska programistycznego ML na prawie każdym komputerze.

Instalacja ML na tych platformach jest prosta i dobrze udokumentowana. Po prostu wybierz odpowiedni plik do pobrania dla swojej platformy na stronie pobierania SML / NJ i postępuj zgodnie z instrukcjami instalacji.

Zasoby

ML istnieje już od lat, więc nie brakuje różnych zasobów. Jeśli chodzi o naukę języka, zawsze jest to dobra rzecz. Pamiętaj jednak, że wiele zasobów ML jest dość starych i może być nieaktualnych.

Skoncentrowaliśmy nasze wyszukiwanie na odpowiednich i stosunkowo niedawnych samouczkach, e-bookach i interaktywnych kursach. Jednak nawet stare zasoby mogą być pomocne, jeśli dopiero zaczynasz.

Kursy ML i tutoriale

Koncentracja na zasobach teoretycznych jest dobrym sposobem na postawienie pierwszych kroków w programowaniu ML, ale po opanowaniu podstaw będziesz musiał przejść do praktycznych przykładów.

Aby naprawdę docenić pełny potencjał ML, musisz zobaczyć go w działaniu. Po opanowaniu podstawowej składni możesz przenieść swój trening na wyższy poziom i wypróbować praktyczne przewodniki i samouczki:

  • Programowanie w standardowym ML’97: Samouczek online Stephena Gilmore’a: jest to darmowy samouczek ML wprowadzający ważne pojęcia w języku ML i ilustrujący je krótkimi przykładami. Jest dostępny w różnych formatach.
  • Programowanie w standardowej ML (pdf) przez Roberta Harpera: jest to darmowy samouczek ML stworzony na kurs Carnegie Mellon University „Informatyka 12–212: Zasady programowania”.
  • Delikatne wprowadzenie do ML autorstwa Andrew Cumminga: jest to darmowy kurs zawierający wprowadzenie i siedem lekcji ML z wieloma innymi przydatnymi zasobami.
  • Wskazówki dla informatyków na temat standardowego ML (poprawionego) (pdf) autorstwa Madsa Tofte: jest to darmowa książka z licznymi przydatnymi poradami na temat programowania ML.

Dodatkowe zasoby

Następnym krokiem jest skupienie się na bardziej rozbudowanych zasobach, takich jak praktyczne samouczki z dużą ilością przykładowego kodu. Te przykłady z życia pomogą Ci zrozumieć programowanie ML. Wyróżniliśmy kilka najczęściej przywoływanych:

  • Standard ML dla New Jersey Podręcznik użytkownika: jest to internetowy przewodnik po programowaniu w standardowym ML przy użyciu SML / NJ, obejmujący wszystko, od instalacji SML / NJ po FAQ, funkcje specjalne, strukturę kompilatora i biblioteki.
  • Standardowa podstawowa biblioteka ML to internetowe odniesienie do standardowej podstawowej biblioteki ML.

Książki

Zawarliśmy również kilka książek na temat programowania ML. Wiele z tych e-książek jest polecanych przez nauczycieli ML i przydadzą się jako odniesienie podczas pracy nad praktycznymi przewodnikami i samouczkami:

  • ML dla programisty roboczego, wydanie drugie autorstwa L. C Paulsona: skupia się na wyjaśnieniu programowania w języku ML i nauczeniu podstaw programowania funkcjonalnego.
  • Elements of ML Programming, ML97 Edition (2nd Edition) autor: Jeffrey D Ullman: ta książka zawiera bardzo przystępny, samouczek wprowadzający krok po kroku dotyczący programowania ML oraz pełne odniesienie i wyjaśnienie zaawansowanych funkcji. Nie jest wymagana wcześniejsza znajomość ML ani programowania funkcjonalnego.
  • Mały MLer autorstwa Felleisen i Friedmana: ta książka wprowadza osoby nowe w programowaniu, a także osoby doświadczone w innych językach programowania, w zasady dotyczące typów, obliczeń i budowy programów.

Ruszamy się do przodu

Podobnie jak w przypadku wszystkich języków programowania, ML będzie się ostatecznie uczyć poprzez działanie. Skonfiguruj środowisko programistyczne i przy pomocy tych zasobów zacznij kodować. Powodzenia!

Dowiedz się o innych interesujących językach programowania.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map