Underspråk

Ett underspråk är en delmängd av ett språk . Underspråk förekommer i naturligt språk , datorprogrammeringsspråk och relationsdatabaser .

På naturligt språk

Inom informatik , naturlig språkbehandling och maskinöversättning är ett underspråk språket i en begränsad domän, särskilt en teknisk domän. I matematiska termer, "en delmängd av meningarna i ett språk bildar ett underspråk till det språket om det är stängt under vissa operationer av språket: t.ex. om när två medlemmar av en delmängd opereras, som av och eller för att , resultant är också medlem i den delmängden". Detta är en specifik term för vad som i de flesta språkstudier refereras till en språkvarietet eller -register.

På datorspråk

Termen underspråk har också ibland använts för att beteckna ett datorspråk som är en delmängd av ett annat språk. Ett underspråk kan begränsas syntaktisk (det accepterar en subgrammatik av originalspråket) och/eller semantiskt (uppsättningen av möjliga resultat för ett givet program är en delmängd av de möjliga resultaten på originalspråket).

Exempel

Till exempel var ALGOL 68S en delmängd av ALGOL 68 utformad för att göra det möjligt att skriva en enkelpasskompilator för detta underspråk .

SQL- satser (Structured Query Language) klassificeras på olika sätt, som kan grupperas i underspråk, vanligtvis: ett datafrågespråk (DQL), ett datadefinitionsspråk (DDL), ett datakontrollspråk (DCL) och en datamanipulation språk (DML).

I relationsdatabasteori

I relationsdatabasteori hänvisar termen "underspråk", som först användes för detta ändamål av EF Codd 1970, till ett datorspråk som används för att definiera eller manipulera strukturen och innehållet i ett relationsdatabashanteringssystem (RDBMS). Typiska underspråk associerade med moderna RDBMS är QBE (Query by Example) och SQL (Structured Query Language). 1985 kapslade Codd in sitt tänkande i tolv regler som varje databas måste uppfylla för att vara verkligt relationell. Den femte regeln är känd som regeln för omfattande dataunderspråk och säger:

Ett relationssystem kan stödja flera språk och olika lägen för terminalanvändning (till exempel läget för att fylla i tomrummen). Det måste dock finnas minst ett språk vars uttalanden kan uttryckas, enligt någon väldefinierad syntax, som teckensträngar, och det är heltäckande för att stödja alla följande objekt:
  • Datadefinition
  • Visa definition
  • Datamanipulation (interaktiv och per program)
  • Integritetsbegränsningar
  • Tillstånd
  • Transaktionsgränser (start, commit och rollback)