Jedná se o třídu programovacích jazyků na vysoké úrovni, které sdílejí společný rys – nemají ani nepoužívají datové typy. Datové typy jsou konkrétní typy dat, jako je řetězec, který může obsahovat text, nebo logická hodnota, která může obsahovat pouze hodnoty true/false. Tyto jazyky samozřejmě stále používají data, ale nerozpoznají datové typy.
Technipages vysvětluje Typeless
Naprostá většina programovacích jazyků rozlišuje mezi datovými typy. To znamená, že jakýkoli druh zadávaných dat musí být definován jako datový typ. Existuje mnoho a mohou se mírně lišit jazyk od jazyka, ale mezi běžné patří řetězce, plovoucí čísla, celá čísla a booleovské hodnoty. Pokud jsou data deklarována jako nesprávný datový typ (například písmena v proměnné pouze s číslem), může to způsobit problémy a zabránit spuštění programu nebo alespoň jeho správnému fungování.
Zatímco obsah proměnné se může změnit, její datový typ obvykle ne – data je třeba přesunout nebo zkopírovat do nové proměnné. V beztypových jazycích tomu tak není. Proměnné a data stále existují a mohou fungovat stejným způsobem jako v jiných jazycích, ale efektivně existuje pouze jeden datový typ – všechna data jsou uložena ve stejném typu, a proto může každá proměnná obsahovat jakýkoli druh data. To může zabránit výskytu určitých problémů – jmenovitě chyb způsobených chybnými deklaracemi – ale může je to také nepříjemnost, protože není možné otestovat uprostřed programu, zda je určitá proměnná jistá typ.
Mezi beztypové jazyky patří například TCL, Rexx a BLISS. Běžné jazyky jako Java, C++ a Python jsou všechny napsané.
V takovém jazyce existuje v podstatě pouze jeden datový typ, takže proměnná může ukládat jakýkoli typ dat (a typ dat uložených v proměnné se může měnit podle provádění programu). Programovací jazyk (jako je JavaScript) je ideální pro skriptování, ve kterém proměnné mohou znamenat počítačový systém zdroje nebo komponenty navíc k datovým typům, které se běžně vyskytují v programování se silným nebo slabým typem jazyky. Jazyk umožňuje rychlý vývoj programu a maximální flexibilitu, ale neprovádí se žádná kontrola typu; z tohoto důvodu nemusí být chyby zjištěny, dokud není kód spuštěn. Viz datový typ, JavaScript, skriptovací jazyk, silné psaní, typ, kontrola typu, slabé psaní.
Běžná použití beztypu
- Jazyky bez typů nepoužívají ke kategorizaci dat tradiční datové typy.
- Proměnné v jazycích bez typu mohou ukládat jakýkoli druh dat.
- Jazyky bez písma neupřednostňují bezpečnost písma.
Běžná nesprávná použití beztypu
- Jazyky bez písma ke psaní nevyžadují klávesnici.