Jim jest opensource małe wdrożenie ślad języka programowania Tcl. Implementuje duży podzbiór Tcl i dodaje nowe funkcje, takie jak zbieranie śmieci z referencjami, zamknięcia, wbudowany system programowania obiektowego, polecenia programowania funkcyjnego, tablic pierwszej klasy. Wszystko to binarnego wielkości 70kB (które mogą być dalej redukowane za wyjątkiem pewnego polecenia).
Projekt ten jest obecnie w toku, ale większość z języka podstawowego jest już wdrożony i jest możliwe, aby używać go do uruchomienia wielu programów niemodyfikowanych Tcl, więc jeśli chcesz, aby zacząć go ocenić, czy zajrzeć do naszego wewnętrznego projektu i wirtualnych
Celem Jima jest zapewnienie potężny język realizowany w około 10k linii kodu, który jest prezentowany w postaci jednego pliku C i pliku nagłówka, aby umożliwić programistom umieścić Jima w swoich aplikacjach, jako język skryptowy, składni pliku konfiguracyjnego, bez celu zależy od zewnętrznych bibliotek lub innych dużych systemów.
Wierzymy skryptów jest bardzo ciekawa funkcja w wielu zastosowaniach, ale deweloperzy często nie są zachęcane do łączenia aplikacji do dużego systemu zewnętrznego. Jim spróbować rozwiązać ten problem zapewniając bardzo proste do zrozumienia i małe wdrożenie ślad języka, który jest idealny dla skryptów, a jednocześnie jest silny i zdolny do skalowania.
Inną dziedziną, w której Jim może pomóc jest jednym z systemów wbudowanych. Jim jest napisany w ANSI-C, jest bardzo mało, zarówno w wielkości i wymagań binarnych pamięci i języka Tcl jest po prostu idealny do tego zadania (na przykład routery Cisco są przy użyciu Tcl).
W ten sposób procedura akumulator Paula Grahama wygląda w Jima:
Akumulator n {proc
Przyrost n {lambda
zestaw n [+ $ n $ przyrost]
}
}
· Operacje matematyczne jak komendy (wraz z obsługą expr).
· Możliwość ładowania rozszerzeń w czasie wykonywania przez system pośredniczące. Nawet programy wykorzystujące Jima, które są związane statycznie są w stanie załadować rozszerzeń.
!. · 70Kbyte rozmiar binarne
Opis :
- Wsparcie dla ważnych funkcji, które będą dostępnej w Tcl8.5, jak dict i {poszerzyć}.
- Tablice w Jim nie są zbiorem zmiennych, takich jak w Tcl, ale pierwszy typ klasy. Składnia dostęp do tablicy jest w Jim cukru składni ustawić i dostać elementy słowników.
- Kompaktowa konstrukcja. Jim jest obecnie mniej niż 10k linii kodu. To jest ciężka stosowanie podwójnych przeniesionych obiektów, w Jim nawet pseudo-VM kodu bajtowego jest wyspecjalizowanym typem Jim_Obj.
- lambda ze zbierania śmieci, a systemem odniesienia do budowania struktur danych powiązanych.
- zamknięcia, procedury Jima procedura może mieć specyficzne trwałych zmiennych (tzw statyka). Wartość można inicjalizacji statyka tworzą kontekst caputred Procedura tworzenia, więc jest to bardzo podobne do leksykalnej określania zakresu wykorzystania.
Co nowego w tym wydaniu:
- W tej wersji dodano wiele, ulepszoną obsługę mingw32 (w tym fully- realizowane exec), dodaje poprawki błędów, poprawia dokumentację, dodaje nowe rozszerzenie Metakit, i sprawia, że przedłużenie pracy SDL ponownie.
Co nowego w wersji 0.71:.
- Różne błędy zostały ustalone
- Wsparcie został dodany do polecenia binarnym. args 'proc' można teraz zmieniona.
- Automatyczne proc upref args są teraz obsługiwane z & nazwa_zmiennej.
- wyrażenie składnia skrót jest dostępny z $ (...).
- Poprzednie definicje proc mogą być zapisywane z lokalnych i wywołany z upcall.
- Nie chciwy wsparcie regexp / regsub został dodany z wbudowaną realizacji regexp.
- Minimal exec realizacja jest wspierana nawet bez vfork / waitpid.
- Konfiguracja jest teraz szybsze i prostsze z Autosetup.
- byterange String został dodany.
- możliwość tworzenia pojedynczego pliku źródłowego ładowania początkowego jimsh został dodany.
- dodano wsparcie opakowanie Debian.
Komentarze nie znaleziono