Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

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

Opublikowano

@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".

Opublikowano
Ale pojęcie język ezoteryczny odnosi się do języków programowania, a to nawet nie jest jaki kolwiek język.

 

Dobra tam ;)

Opublikowano
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?
Opublikowano

Aktualizacja 28-04-2012r:

 

Po pierwszym dniu pisania, pierwsza wersja ujrzała światło dzienne - 0.125 PRE-ALPHA.

 

Proszę o zgłaszanie ewentualnych błędów w celu ich poprawienia w następnej aktualizacji.

Opublikowano
A tak szczerze to do czego do jest potrzebne? Chyba tylko dla zabawy. (bez obrazy)

 

Tak, to ma służyć do zabawy.

Opublikowano
Dodane dwa przykłady zastosowań. Uwaga: Plik "script.txt" zawsze musi znajdować się w folderze z kompilatorem.

Taka uwaga, to jest raczej interpreter, a nie kompilator.

Opublikowano

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

Opublikowano
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.

Opublikowano

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 )

Opublikowano

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++.

Opublikowano

@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.

Opublikowano
@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 ?

Opublikowano
Far out dude, sorki za tę kanapkę.

Licz czas, zaraz wrzucę kod.

 

Kanapkę wybaczam, 12:33 + 20 min = 12:53 a jest 13:05...

 

Puki co lece do roboty, będę czekał na Twoj interpreter jak i WTF

Opublikowano

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));

}

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ę...