Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Interpretowany język programowania Caracal


MXVOL

Rekomendowane odpowiedzi

Opublikowano
Argumentem jest w tym wypadku zmienna, którą następnie posługuje się funkcja wbudowana, więc myślę, że jestem w stanie to rozróżnić. :)
if zmienna argument zmienna polecenie - tradycyjny operator warunkowy
 
argumenty:
==
<=
>=
<
>
!=

 

Opublikowano

Takie o. Mógłbyś zrobić normalny parser wyrażeń z wbudowanymi funkcjami i możliwością deklaracji własnych. Nie jest to skomplikowane, robiłem coś takiego w gimnazjum + interfejs graficzny. Jakieś 500-600 linijek kodu i starczy.

RAsfepN.png
Opublikowano

Argumentem jest w tym wypadku zmienna, którą następnie posługuje się funkcja wbudowana, więc myślę, że jestem w stanie to rozróżnić. :)

Po za tym, ucząc się C++, nie koniecznie uczę się teorii, toteż nie muszę znać nazw każdego kawałka kodu, aby móc coś takiego napisać.

Dziecko, które uczy się polskiego, nie uczy się od razu, czym jest interpunkcja, gramatyka, czasownik, przymiotnik, równoważnik zdania, entc. ale jest w stanie konstruować zrozumiałe zdania, którymi skutecznie komunikuje się z innymi - czyli działa. Tak samo ja nie muszę być obeznany co, jak się nazywa, wystarczy, że umiem stworzyć kod, który będzie działał, a to, że tych nazw nie znam, nie jest równoważne z tym, że nie znam języka, lecz jest to tylko bełkot zwolenników teorii.

 

"Bełkot zwolenników teorii" xD

 

Twoje porównanie jest z czapy - Ty po prostu nie rozumiesz znaczenia słów - dziecko które uczy się polskiego nie musi znać części mowy, ale jak myli kota z psem to już to co mówi jest niezrozumiałe (może dla niego tak, ale nie dla otoczenia).

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Nie mam tu na myśli właśnie konkretnych przedmiotów, lecz ich ogólny typ. Tak samo ja nie mylę funkcji z funkcją, więc w ostateczności kod działa, aczkolwiek widocznie nie jestem w stanie podporządkować określonych części kodu jakimś typom. Zaś moje porównanie jest jak najbardziej trafne, tylko Twoja interpretacja jest błędna.

 

@Sopelek997

zwracam honor, rzeczywiście się tam pomyliłem, zaraz zrobię edit w temacie.

 

@Osama

zamierzam w jednej z najbliższych aktualizacji dodać możliwość robienia własnych funkcji :v

 

@Vesim

niby dlaczego to skopiowanie jest "bezczelne"?

jw19e8.png

Opublikowano

jest w stanie konstruować zrozumiałe zdania, którymi skutecznie komunikuje się z innymi

Jednak Ty nie będziesz w stanie komunikować się z innymi na temat kodu nie znając nazw jego elementów. Nie musisz znać nazw elementów języka w którym komunikujesz się z innymi tłumacząc ten kod, bo nie dotyczy on tego, co tłumaczysz, lecz nazwy elementów kodu ściśle dotyczą programowania. A komunikacja przy programowaniu jest ważna - samemu niewiele zrobisz. A określając to jako "bełkot" raczej zniechęcasz się do nauki, a więc dłużej pozostajesz gorszym programistą. Tak samo możesz mieć problem ze zrozumieniem innych osób tłumaczących jak coś działa, przykładowo przy nauce nowego języka.

708121422388637873334.png

Opublikowano

@up

Wiem, dlatego dopóki nie upewnię się, że znam się już na tych nazwach, chcę pracować nad moimi projektami sam, aczkolwiek bardzo pomocne mi są sugestie innych :). Jeśli chodzi o ten "bełkot", to lekko przesadziłem, pod wpływem negatywnych emocji. Dzięki za poradę :).

jw19e8.png

Opublikowano

@ref

Aktualizacja:

 

import pi - tworzy zmienną pi z wartością liczby pi

import fi - tworzy zmienną fi z wartością liczby fi

import e - tworzy zmienną e z wartością liczby e

 

rep - podmiana pojedynczych wyrazów, przykład:

 

rep name nowa // tutaj jaki wyraz ma być podmieniony

rep add next // tutaj na co ma być podmieniony

 

przykład:

rep name nowa

rep add next

rep name linia

rep add line

można dzięki temu zamiast "next line" napisać, po polsku, "nowa linia", a efekt będzie taki sam (nie ma to wpływu na prędkość). Funkcja zrobiona z myślą o osobach, które chciałyby zmienić język naturalny, do jakiego upodabnia się Caracal.

 

nowe funkcje w "set":

sin

cos

exp

log

są to dość popularne funkcje, więc raczej każdy wie, do czego służą. Użycie:

set m sin g // sprawia, że zmienna m przechowuje wartość sin z zmiennej g

 

printa zmienna // wyświetla znak ascii, którego kod zawarty jest w zmiennej. Jeśli chcemy wyświetlić więcej niż jedną zmienną, piszemy spację, a potem kolejną nazwę zmiennej, przykład:

printa jeden dwa trzy

 

 

Download: http://www.speedyshare.com/THFUG/Caracal.exe

Skan: https://www.virustotal.com/pl/file/206603c5eb1422c567f3c1b06df054fd1c0140fa8101484420ff688beac7fb27/analysis/1457876475/

 

Download i skan zaktualizowano także w pierwszym poście tematu.

jw19e8.png

Opublikowano

 

@Vesim

niby dlaczego to skopiowanie jest "bezczelne"?

Glownie dla tego ze ukryles temat zeby ukryc cudzy... oh wait twoj kod? O_o

 

Wciąż nie widzę tu nic bezczelnego. Jak już prawdopodobnie wyżej pisałem, skoro temat nie jest już poruszany, mam prawo go zamknąć.

jw19e8.png

  • 3 tygodnie później...
Opublikowano

@ref

Aktualizacja:

 

Z racji, że interpreter zaczął się rozrastać, wszystkie funkcje w kodzie źródłowym zostały w deklaracji poprzedzone "inline", dzięki czemu Caracal powinien być (jeszcze) szybszy.

 

Dodano także operator "&" (adres) do funkcji wbudowanej "var", przykład:

var & przykladowazmienna

 

Skan: https://virustotal.com/pl/file/0bb9b02810542a8de77fea923c400e81d5c2d7d662fb3d7479d537900a7e3600/analysis/

Download: http://speedy.sh/2jGaC/Caracal.exe

jw19e8.png

Opublikowano

wow ale mega fajny projekt +

 

Odkąd pamiętam, zawsze chciałem być gangsterem. Dla mnie bycie gangsterem było lepsze niż bycie prezydentem Stanów Zjednoczonych.

  • 4 tygodnie później...
Opublikowano
@ref

Aktualizacja:

Dodano polecenie:



coords x y


po kliknięciu na okno konsoli do zmiennych x y są zwracane koordynaty w systemie europejskim (1,1)

Edytowano polecenia:

Teraz w poleceniach:

print

printl

baptism

należy używać nawiasów, np:



baptism (tytul)


Ulepszono również system wykrywania błędów.

 



 

 

 

Dodatkowo, stworzyłem pierwszy większy program w Caracal'u, a mianowicie Paint.

Posiada on po 16 odcieni szarości w każdej gęstości pędzla: \219▓▒░, czyli łącznie 64 (w rzeczywistości 61, bo czarny zawsze wygląda tak samo)

Przykładowa praca: (jakby ktoś nie wiedział, to miały być góry ;-; )

fa5vrg.jpg

Z lewej jest pole do malowania, z prawej panel do wyboru odcieni, a niżej minipanel do wybierania gęstości pędzla, za pomocą strzałek.

Jest także licznik: łącznie na stworzenie obrazu można poświęcić 30000 operacji (każde kliknięcie w obrębie konsoli to jedna operacja). Licznik pokazuje, ile nam zostało.

 



jw19e8.png

Opublikowano

@Jaca777

Csiiii ;-;

Tak na serio, w Caracal'u nie ma pętli, więc musiałem zrobić to tak :v

A działanie się podoba? 

btw.

Piona Notepad++'owców xD

 

Jeśli chodzi o goto, to mam właśnie w planach zrobić, bo odpowiednio mieszając goto i if możnaby samemu robić pętle :v

 

Ogólnie, taki mały changelog:

- if'y do box'ów

- goto

- funkcje

- proste biblioteki (będą polegać na niczym innym, jak zastąpieniu "library biblioteka" funkcjami zawartymi w bibliotece, rzecz jasna na czas działania apki)

 

Potem, jeśli nie wpadnę na żadne polecenie godne wbudowania do interpretera, będę prawdopodobnie tylko co jakiś czas wydawał biblioteki.

jw19e8.png

Opublikowano

@Jaca777

Csiiii ;-;

Tak na serio, w Caracal'u nie ma pętli, więc musiałem zrobić to tak :v

A działanie się podoba? 

btw.

Piona Notepad++'owców xD

 

Jeśli chodzi o goto, to mam właśnie w planach zrobić, bo odpowiednio mieszając goto i if możnaby samemu robić pętle :v

 

Ogólnie, taki mały changelog:

- if'y do box'ów

- goto

- funkcje

- proste biblioteki (będą polegać na niczym innym, jak zastąpieniu "library biblioteka" funkcjami zawartymi w bibliotece, rzecz jasna na czas działania apki)

 

Potem, jeśli nie wpadnę na żadne polecenie godne wbudowania do interpretera, będę prawdopodobnie tylko co jakiś czas wydawał biblioteki.

Nie tylko Notepad++ ma taki interfejs. Co do języka to bez sensu lepiej nauczyć się C++ niż czekać aż twój zostanie rozwinięty. ale życzę ci powodzenia :)

  • 1 miesiąc temu...
Opublikowano

@ref

 

Informacja:

Wkrótce prawdopodobnie powstanie poradnik Caracal'a, a temat zostanie edytowany na czytelniejszy. Do tego, patronem języka została oficjalnie Grace Hopper :v

jw19e8.png

Opublikowano

@ref

 

Informacja:

Wkrótce prawdopodobnie powstanie poradnik Caracal'a, a temat zostanie edytowany na czytelniejszy. Do tego, patronem języka została oficjalnie Grace Hopper :v

 

Nie chcę Cię martwić, ale raczej nikt rozsądny nie będzie z twojego języka korzystał - daruj sobie póki co poradnik bo to strata czasu. Mógłbyś go poświęcić na dalszy rozwój języka - przynajmniej się czegoś nauczysz.

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

  • 1 miesiąc temu...
Opublikowano

@up

Dzięki za opinię :)

 

@Aktualizacja

Po zmianie treści tematu na bardziej zrozumiały, Caracal powinien ważyć zasadniczo mniej, i jest malutka szansa, że powstanie wersja na inne OS.

jw19e8.png

Opublikowano

To zależy, co masz na myśli. Według Jerzego Grębosza nawet int jest jako-takim obiektem xD

jw19e8.png

  • 5 miesięcy temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...