Skocz do zawartości

WTF?


Moe

Rekomendowane odpowiedzi

wtfweb.png

 

iconweb.pngJęzyk WTF?

 

Czym jest język WTF? i do czego służy?

 

Język WTF? jest językiem ezoterycznym, czyli nie nadającym się do zastosowań podczas pisania aplikacji użytkowych.

Jest językiem stworzonym przez jedną osobę pragnącą zdobyć i poszerzyć swoją wiedzę na temat programowania komputerów.

 

Skoro jest ezoteryczny, to czy znaczy, że jest trudny?

 

Język ten jest może się kojarzyć z językami BrainF*ck, czy BrainFork. Jednak język ten ma swoją, nietypową dla normalnych języków programowania składnie. Składnia ta mimo , że wygląda ?groźnie?, to zawiera jedynie kilkanaście poleceń, których działanie łatwo jest poznać i nauczyć się ich.

Aha? zapomniałem odpowiedzieć na pytanie zadane wyżej? czy jest trudny ? powiem tyle ? zdecyduj sam ;)

 

Jak działa język WTF?

 

Język WTF? wczytuje na samym początku plik skryptu (script.txt) i go wykonuje. Dokładniejsze działanie jest zaprezentowane w dziale ?Komendy języka WTF??

 

iconweb.pngKomendy języka WTF?

 

Podstawy języka WTF?

 

Język WTF? opiera swoje działanie wyłącznie na tablicy, której graficzny przykład można zaobserwować poniżej:

 

list.png

 

Cała praca z językiem WTF? zawęża się do zapisywania danych w tablicy i wykonywaniu operacji za pomocą odczytywania tychże danych z tablicy.

 

Komendy języka WTF?

 

C - Czyści konsolę

 

> - Przesuwa wskaźnik na podane miejsce w tablicy. Przykład:

 

Przykładowy program
==========

>
7

Wskaźnik zostanie przesunięty na 7 miejsce na tablicy.

 

$ - Zapisuje dane w aktualną pozycję wskaźnika na tablicy. Przyjmuje wartości tekstowe jak i liczbowe. Przykład:

 

Przykładowy program
==========

>
7 

$
Test

! - Sprawdza wartość miejsca na tablicy. Przykład:

 

Przykładowy program
==========

>
7 

$
Test

!
7

 

< - Drukuje dane z tablicy ( podobnie jak "!" )

 

# - Wykonuje działanie matematyczne na dwóch liczbach z tablicy. Przykład:

 

Przykładowy program
==========

>
1

$
5

>
2

$
10

>
3

$
+

#
1
2
3

 

BC - Zmienia kolor tła. Dostępne kolory - 1 - WHITE, 2 - BLACK, 3 - RED, 4 - BLUE, 5 - GREEN, 6 - YELLOW

 

GET - Pobiera dane od użytkownika i zapisuje je do miejsca na tablicy. Przykład:

 

Przykładowy program
==========

GET
1 ( 1 miejsce na tablicy )

<
1

 

X - Powoduje natychmiastowe przerwanie pracy programu oraz X/t - przerywa pracę programu po czasie zapisanym w wybranym miejscu na tablicy.

 

 

Komendy będą dodawane na bieżąco.

 

iconweb.pngZrobione i do zrobienia

 

- ZROBIONE

 

- Konsola i rozpoznawanie komend

- Komendy dotyczące matematyki

- Komendy WEJŚCIA / WYJŚCIA tekstu

 

- DO ZROBIENIA

 

- Pętle

 

- Obsługa multimediów

 

iconweb.pngDziennik aktualizacji

 

28-04-2012 - Rozpoczęto dystrybucję języka WTF?

28-04-2012 - Wydano pierwszą testową wersję języka WTF oraz WTF IDE.

29-04-2012 - Aktualizacja 0.256 PRE-ALPHA

 

iconweb.pngZnane błędy

 

Brak

 

iconweb.pngDownload

 

 

WTF - Wersja 0.125 + WTF IDE - Wersja 0.125 PRE - ALPHA ( 28-04-2012 )

 

WTF - Wersja 0.256 PRE - ALPHA ( 29-04-2012 )

 

Komentarz:

 

Uwaga: Plik "script.txt" zawsze musi znajdować się w folderze z kompilatorem.

Po każdej operacji wykonuj spację odstępu ( miejsce na komentarz ). Przykład:

 

Script name

==========

KOMENTARZ

>

1

KOMENTARZ

C

KOMENTARZ

Odnośnik do komentarza
Udostępnij na innych stronach

@Chell

 

Projekt jest wykonywany w GML, i proszę, nie mieszajmy do tego innych języków, ok?

 

@ediepl

 

Nigdy nie pisałem, jaki to jest ( i czy to jest ) język programowania. Po prostu piszę, że jest to "Język".

Odnośnik do komentarza
Udostępnij na innych stronach

Projekt jest wykonywany w GML, i proszę, nie mieszajmy do tego innych języków, ok?
no tak, to zawsze jakieś usprawiedliwienie - nie robiłem tego w C++, wolałem tyrać godzinami (choć też pewnie nie) w GML zamiast poszukać lepszego rozwiązania.

Dobra tam
jak zwykle przy twoich projektach

Rozpoczęto dystrybucję języka WTF?
przepraszam?

czyli nie nadającym się do zastosowań podczas pisania aplikacji użytkowych.
to znaczy że robisz coś za co po pierwsze jesteś hejtowany, po drugie nie ma z tego żadnego użytku?
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli zamierzasz przy tym zostać, to radzę przerobić to na coś w stylu Logomocji. Wprawdzie i tak to będzie, jak to Tymon powiedział, "interpretator w interpretatorze", ale wg. mnie już lepsze takie coś.

Co do IDE to Notatnik windowsowy oferuje większe możliwości. Twój nawet nie dodaje rozszerzenia .txt przy zapisywaniu (trzeba dopisać w nazwie jak się zapisuje).

BTW. Bardzo trafna nazwa dla tego "języka". Powiedziałem to samo jak to zobaczyłem :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli zamierzasz przy tym zostać, to radzę przerobić to na coś w stylu Logomocji. Wprawdzie i tak to będzie, jak to Tymon powiedział, "interpretator w interpretatorze", ale wg. mnie już lepsze takie coś.

Co do IDE to Notatnik windowsowy oferuje większe możliwości. Twój nawet nie dodaje rozszerzenia .txt przy zapisywaniu (trzeba dopisać w nazwie jak się zapisuje).

BTW. Bardzo trafna nazwa dla tego "języka". Powiedziałem to samo jak to zobaczyłem :P

 

Oczywiście, jeżeli ktoś nie chce, to nie musi używać WTF IDE. Wystarczy notatnik.

Odnośnik do komentarza
Udostępnij na innych stronach

Aktualizacja 29-04-2012

 

UWAGA

 

Zmieniono działanie komendy "#" odpowiedzialnej za matematykę. Teraz ostatni argument ( operacji ) musi również być zapisany do tablicy.

 

Dodano trzy komendy:

 

BC - Zmienia kolor tła. Dostępne kolory - 1 - WHITE, 2 - BLACK, 3 - RED, 4 - BLUE, 5 - GREEN, 6 - YELLOW

 

GET - Pobiera dane od użytkownika i zapisuje je do miejsca na tablicy. Przykład:

 

Przykładowy program
==========

GET
1 ( 1 miejsce na tablicy )

<
1

 

Dodano również przykład prostego kalkulatora z użyciem komendy GET.

 

X - Powoduje natychmiastowe przerwanie pracy programu oraz X/t - przerywa pracę programu po czasie zapisanym w wybranym miejscu na tablicy.

 

Download:

 

WTF - Wersja 0.256 PRE - ALPHA ( 29-04-2012 )

Odnośnik do komentarza
Udostępnij na innych stronach

Może wygląda jak wygląda, ale działa. Jeżeli działa to jest dobre, kiedy się go trochę rozwinie, a widzę, że się rozwija to może nawet coś konkretnego z tego wyjdzie.

 

Ciekawe jakie było podejście ludzi jak assebler został "wyparty" pascal'em, w tedy też mówili: "Weź idź z tym"...

 

Jest to bardzo ciekawy język ! Jego składnia jest dużo mniejsza choćby nawet od pascal'a czy C++.

Odnośnik do komentarza
Udostępnij na innych stronach

@RafiSI: Jesteś inteligentny jak kanapka którą właśnie jem, sam interpreter to 20 min roboty jak nie mniej, i niema co się tym podniecać, a co dopiero porównywać do c++ czy pascala.

Ciekawe jakie było podejście ludzi jak assebler został "wyparty" pascal'em

Tyle że bez assemblera pascal by nie powstał, zresztą jak wszystkie języki wysokopoziomowe.

Odnośnik do komentarza
Udostępnij na innych stronach

@RafiSI: Jesteś inteligentny jak puszka kanapka którą właśnie jem, sam interpreter to 20 min roboty jak nie mniej, i niema co się tym podniecać, a co dopiero porównywać do c++ czy pascala.

 

Tyle że bez assemblera pascal by nie powstał.

 

Na temat poziomu Twojej inteligencji się nie wypowiadam, bo musiałbym zniżyć się do Twojego poziomu, po drugie tu nie chodzi o moją inteligencję tylko o język... więc nie wiem czy umiesz czytać ze zrozumieniem.

 

 

Interpreter w 20 min - zrób z chęcią zobaczę, oczywiście BEZ BŁĘDÓW !

 

Pascal bez assemblera by nie powstał - to każdy wie, więc po co to piszesz ?

 

Każdy język jest oparty na kodzie maszynowym geniuszu... nawet te o którym tu trwa dyskusja.

 

 

 

 

Nie obraziłem Ciebie nigdy i nic do Ciebie nie miałem WIĘC NIE OBRAŻAJ LUDZI, którzy mają odmienne zdanie OK ?

Odnośnik do komentarza
Udostępnij na innych stronach

Sorki za spóźnienie ale router mi wysiadł...

GML (CREATE)
dzialania = ds_list_create();

tablica[9999] = 0;

wskaznik = 0;

file = file_text_open_read("script.txt");

while(1)

{

if file_text_eof(file) break;

switch(file_text_read_string(file))

{

case "C":

{

ds_list_clear(dzialania);

break;

}

 

case ">":

{

file_text_readln(file);

wskaznik = real(file_text_read_string(file));

ds_list_add(dzialania, "> "+string( wskaznik ));

break;

}

case "<":

{

file_text_readln(file);

ds_list_add(dzialania, tablica[real(file_text_read_string(file))] );

break;

}

case "$":

{

file_text_readln(file);

tablica[wskaznik] = file_text_read_string(file);

ds_list_add(dzialania, "$ "+string(tablica[wskaznik])+" at "+string( wskaznik ));

break;

}

case "#":

{

var l1, l2, dzialanie, wynik;

file_text_readln(file);

l1 = real(file_text_read_string(file));

 

file_text_readln(file);

l2 = real(file_text_read_string(file));

 

file_text_readln(file);

dzialanie = file_text_read_string(file);

switch(dzialanie)

{

case "+":

{

wynik = l1 + l2;

break;

}

case "-":

{

wynik = l1 - l2;

break;

}

case "*":

{

wynik = l1 * l2;

break;

}

case "/":

{

wynik = l1 / l2;

break;

}

}

ds_list_add(dzialania, string( l1 ) + " " + dzialanie + " " + string( l2 ) + " = " +string( wynik ) );

break;

}

case "":

{

break;

}

default:

{

break;

}

}

file_text_readln(file);

}

file_text_close(file);

 

GML (DRAW)
for(i = 0; i<ds_list_size(dzialania); i+=1;)

{

draw_text(12, 12+(16*i), ds_list_find_value(dzialania, i));

}

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...